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