GROUP BY 分组统计与 COUNT、DISTINCT 用法
分组后可以对每一组的数据进行数量统计。
统计每组记录数
SELECT name, COUNT(*)
FROM person
GROUP BY name
分组后获取每组的最大时间与年龄统计
SELECT name, MAX(cjsj) cjsj, COUNT(age)
FROM person
GROUP BY name
执行结果示例:
| name | cjsj | (无列名) |
|---|---|---|
| 张飞 | 2300-01-03 00:00:00.000 | 3 |
| 张三丰 | 2018-04-08 00:00:00.000 | 1 |
使用 COUNT(DISTINCT) 去掉重复值统计
如果希望统计年龄不重复的个数,可以使用 COUNT(DISTINCT 字段名):
SELECT name, MAX(cjsj) cjsj, COUNT(DISTINCT age)
FROM person
GROUP BY name
这样可以排除同一分组内年龄相同导致的重复计数,只统计不重复的年龄数量。
Previous: GROUP BY 分组查询与聚合函数
Next: 临时表