使用 GROUP BY 來計算給定列中每個唯一條目的行數
假設你要為列中的給定值生成計數或小計。
鑑於此表,Westerosians
:
名稱 | GreatHouseAllegience |
---|---|
阿里亞 | 斯塔克 |
Cercei |
蘭尼斯特 |
Myrcella |
蘭尼斯特 |
亞拉 | 葛雷喬伊 |
凱特琳 | 斯塔克 |
Sansa |
斯塔克 |
如果沒有 GROUP BY,COUNT 將只返回總行數:
SELECT Count(*) Number_of_Westerosians
FROM Westerosians
返回…
Number_of_Westerosians |
---|
6 |
但是通過新增 GROUP BY,我們可以為給定列中的每個值計算使用者數,以返回給定 Great House 中的人數,例如:
SELECT GreatHouseAllegience House, Count(*) Number_of_Westerosians
FROM Westerosians
GROUP BY GreatHouseAllegience
返回…
屋 | Number_of_Westerosians |
---|---|
斯塔克 | 3 |
葛雷喬伊 | 1 |
蘭尼斯特 | 2 |
將 GROUP BY 與 ORDER BY 組合以按最大或最小類別對結果進行排序是很常見的:
SELECT GreatHouseAllegience House, Count(*) Number_of_Westerosians
FROM Westerosians
GROUP BY GreatHouseAllegience
ORDER BY Number_of_Westerosians Desc
返回…
屋 | Number_of_Westerosians |
---|---|
斯塔克 | 3 |
蘭尼斯特 | 2 |
葛雷喬伊 | 1 |