1. 聚集函数有哪些?

image.png

  1. SQLSELECT COUNT(*) FROM heros WHERE hp_max > 6000
  2. SQLSELECT COUNT(role_assist) FROM heros WHERE hp_max > 6000

Note: AVG、MAX、MIN 等聚集函数会自动忽略值为 NULL 的数据行,MAX 和 MIN 函数也可以用于字符串类型数据的统计,如果是英文字母,则按照 A—Z 的顺序排列,越往后,数值越大。如果是汉字则按照全拼拼音进行排列。

  1. # 统计不同生命最大值英雄的平均生命最大值
  2. SELECT ROUND(AVG(DISTINCT hp_max), 2) FROM heros;

2. 对数据分组并进行聚集统计?

对数据分组,使用GROUP by子句。

  1. SELECT COUNT(*), role_main FROM heros GROUP BY role_main;
  2. SELECT COUNT(*) as num, role_main, role_assist FROM heros GROUP BY role_main, role_assist ORDER BY num DESC

3. 使用HAVING过滤分组,HAVINGWhere的区别?

Where:用于数据行
HAVING:过滤作用于分组

4. 总结

关键字顺序

  1. SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...

image.png