【MySQL必知必會】第十三章 分組數據
阿新 • • 發佈:2017-05-21
num mysql 統計 where子句 rom 過濾 group by 大於 映射
1、創建分組
輸入:
SELECT vend_id , COUNT(*) AS num_prods
FROM products
GROUP BY vend_id;
輸出:
vend_id num_prods
1001 3
1002 7
分析:選定要顯示的列:vend_id和num_prods(行數統計列的新建的別名),選定來源表:products,分組依據:根據vend_id進行排序並進行數據分組統計。GROUP BY子句必須出現在WHERE子句之前,ORDER BY子句之後。
2、過濾分組
使用HAVING關鍵字,語法和WHERE一致,只是過濾對象不同,一個是行,一個是組。值得註意的是,同時使用WHERE和HAVING關鍵字,WHERE關鍵字過濾掉的行,不會在HAVING關鍵字裏進行統計分組。
輸入:
SELECT cust_id,COUNT (*) AS orders
FROM orders
GROUP BY cust_id
HAVING COUNT(*) >=2;
輸出:
cust_id orders
1001 2
分析:
輸出兩列:cust_is和orders(新建列的別名,所有行的數目,包括null行);
表源:cust_id;
分組過濾依據:按照cust_id列的每一行進行數據統計,並形成 cust_id-行數 的映射鍵值對,然後在根據cust_id列的順序排序映射鍵值對;
過濾分組: cust_id-行數 映射對中 行數 大於等於2的映射對可以保留。
【MySQL必知必會】第十三章 分組數據