把數據分成多個邏輯組,以便能對每個組的數據進行操作,對每個組進行聚集計算。
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子句進行排序輸出
文章列表