天天看點

SQL分組查詢

  把資料分成多個邏輯組,以便能對每個組的資料進行操作,對每個組進行聚集計算。

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子句進行排序輸出

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。