1. 聚集函数有哪些?
SQL:SELECT COUNT(*) FROM heros WHERE hp_max > 6000
SQL:SELECT COUNT(role_assist) FROM heros WHERE hp_max > 6000
Note: AVG、MAX、MIN 等聚集函数会自动忽略值为 NULL 的数据行,MAX 和 MIN 函数也可以用于字符串类型数据的统计,如果是英文字母,则按照 A—Z 的顺序排列,越往后,数值越大。如果是汉字则按照全拼拼音进行排列。
# 统计不同生命最大值英雄的平均生命最大值
SELECT ROUND(AVG(DISTINCT hp_max), 2) FROM heros;
2. 对数据分组并进行聚集统计?
对数据分组,使用GROUP by
子句。
SELECT COUNT(*), role_main FROM heros GROUP BY role_main;
SELECT COUNT(*) as num, role_main, role_assist FROM heros GROUP BY role_main, role_assist ORDER BY num DESC
3. 使用HAVING
过滤分组,HAVING
和Where
的区别?
Where
:用于数据行HAVING
:过滤作用于分组
4. 总结
关键字顺序
SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...