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