2012-03-14 58 views
0

有沒有辦法解決不能在group by語句之後使用where子句的問題?假設我需要擁有羣組,我想說WHERE x LIKE 'y'有沒有解決方法?在通過WorkAround分組後應用的位置?

+0

如果你想過濾從列表中的表達式,你可以把你的過濾器放在HAVING子句中。如果不是,爲什麼你不能在哪裏使用? – 2012-03-15 00:05:19

+0

請顯示您的示例數據,您嘗試過的查詢,結果如何錯誤以及您實際需要的結果。 – 2012-03-15 04:08:17

回答

2

如果你想過濾從列表中的表達式,你可以把你的過濾器放在HAVING子句中。

select first, second, third, sum(something) something_summed 
from tablea 
group by first, second, third 
having first + second < 10 
+0

如果過濾器的HAVING x LIKE'y'會過濾器工作嗎? – 2012-03-15 00:15:47

+0

是的。但爲什麼你需要把它放在一組之後呢? – 2012-03-15 00:20:57

+0

因爲我需要羣組以供我的查詢使用是正確的 – 2012-03-15 00:28:40

0
Select c1,c2,c4 
From (
    Select c1,c2,sum(c3) as c4 
    From table1 
    Group by c1, c2 
    ) A 
Where A.c1 Like 'yyy' 
+0

爲什麼不使用'having'?這效率較低 – 2012-03-15 00:28:09