我正在執行以下請求,並得到「ORA-00979:不是GROUP BY表達式」錯誤。ORA-00979:不是GROUP BY表達式問題
select distinct
field1,
field2,
field3,
count(*) as field4,
field5,
field6,
case
when smt1>0 then 'Deleted'
when smt2>0 then 'Impacted'
when smt3>0 then 'Unknown'
else 'Clean'
end as field7,
field8,
field9,
field10,
field11,
field12,
field13
from (<here a big sub query>) A
group by field1, field2
order by field1, field2
我知道,我必須把選擇的所有列在GROUP BY語句中,除了分組功能的人(如MAX或SUM),所以我想下面的查詢,但我得到同樣的錯誤信息:
select distinct
field1,
field2,
field3,
count(*) as field4,
field5,
field6,
case
when smt1>0 then 'Deleted'
when smt2>0 then 'Impacted'
when smt3>0 then 'Unknown'
else 'Clean'
end as field7,
field8,
field9,
field10,
field11,
field12,
field13
from (<here a big sub query>) A
group by field1, field2, field3, field5, field6, field8, field9, field10, field11, field12, field13
order by field1, field2
如何在不改變查詢的整體含義的情況下解決這個問題?
非常感謝你, 馬丁
如果我添加它,我得到以下錯誤:ORA-00904:「field7」:無效的標識符 – MartinMoizard 2011-02-17 11:23:44
@MartinMoizard - 我想你可能無法通過相同的查詢添加別名。您需要在group by中添加完整的CASE語句。 – 2011-02-17 11:25:40