使用 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