把資料分成多個邏輯組,以便能對每個組的資料進行操作,對每個組進行聚集計算。
1.建立分組
分組是在SELECT語句的GROUP BY子句中建立的
例子:
SELECT vendId,count(*) AS numProds FROM products GROUP BY vendId;
GROUP BY子句訓示分組資料,然後對每個組而不是整個資料集進行聚集。
GROUP BY的一些注意事項:
【1】在建立分組時,指定的所有列都一起計算,不能從個别列取回資料
【2】如果分組列中有NULL值,則NULL将作為一個分組傳回,如果劣種有多行NULL值,他們将分為一組。
【3】GROUP BY子句必須出現在WHERE子句之後,ORDER BY子句之前。
2.過濾分組
【1】HAVING子句過濾
SELECT custId,count(*) AS orders FROM orders GROUP BY custId HAVING count(*)>=2;
HAVING子句将過濾計數為2或大于2的分組
3.分組排序
一般使用GROUP BY子句時,也要使用ORDER BY子句,這是保證資料正确排序的唯一方法。
使用ORDER BY子句排序資料
SELECT orderId,sum(quantity*itemPrice) AS orderTotal FROM orderItems GROUP BY orderId
HAVING sum(quantity*itemPrice)>50
ORDER BY oredrTotal;
HAVING子句過濾資料,ORDER BY子句進行排序輸出
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。