2011年8月27日 星期六

[ SQL ] GROUP BY, HAVING

GROUP BY
如果有需求,是要得到某某分類的資料加總起來的數字是多少,可以利用GROUP BYSUM函式輕鬆得到解法。
比方說,一個資料表裡面有很多各種顏色的椅子,每張椅子都有各自的價錢,那麼我想知道各種顏色椅子的總價...
SELECT chair.color, SUM(chair.price)
FROM chair
GROUP BY chair.color

HAVING
這個語法要跟上面的GROUP BY一起使用。如果要把上述查詢出來的結果再進一步去過濾,就可以利用這個語法設定條件(概念上有點像WHERE)。
承上述例子,我想知道各種顏色椅子總價在30000以上的結果,那麼可以....
SELECT chair.color, SUM(chair.price)
FROM chair
GROUP BY chair.color
HAVING SUM(chair.price) > 30000
這個語法也可以用於過濾文字....
SELECT chair.color, SUM(chair.price)
FROM chair
GROUP BY chair.color
HAVING chair.color = 'Red'

沒有留言: