课程进度 58% · 第6/9章第6/9章 · 标签 1/4
— 1 —
常用聚合函数
SQL聚合函数用于对一组数据进行统计计算,常与GROUP BY结合完成分组统计。它们是数据分析的核心工具。
sql
1
-- 常用聚合函数
2
SELECT COUNT(*) AS 总人数,
3
AVG(score) AS 平均分,
4
MAX(score) AS 最高分,
5
MIN(score) AS 最低分,
6
SUM(score) AS 总分
7
FROM students;
8
9
-- COUNT 不同用法
10
SELECT COUNT(*) FROM students; -- 所有行
11
SELECT COUNT(1) FROM students; -- 等价于 COUNT(*)
12
SELECT COUNT(age) FROM students; -- 非 NULL 的 age 数量
13
SELECT COUNT(DISTINCT class_id) FROM students; -- 去重统计
14
15
-- 聚合函数忽略 NULL
16
SELECT AVG(score) FROM students; -- 忽略 NULL
17
SELECT SUM(score) / COUNT(*) FROM students; -- 含 NULL 计算
📖COUNT统计行数,SUM求和,AVG平均,MAX/MIN最大最小。聚合函数忽略NULL值。COUNT(*)和COUNT(1)性能相近,都统计所有行。
— 2 —
聚合函数进阶
聚合函数可与条件表达式结合,实现更灵活的统计:
sql
1
-- 条件统计
2
SELECT COUNT(CASE WHEN score >= 60 THEN 1 END) AS 及格人数,
3
COUNT(*) AS 总人数
4
FROM students;
5
6
-- 统计各分数段
7
SELECT
8
SUM(CASE WHEN score >= 90 THEN 1 ELSE 0 END) AS 优秀,
9
SUM(CASE WHEN score >= 60 AND score < 90 THEN 1 ELSE 0 END) AS 良好,
10
SUM(CASE WHEN score < 60 THEN 1 ELSE 0 END) AS 不及格
11
FROM students;
12
13
-- 聚合运算
14
SELECT AVG(score) AS 平均分,
15
MAX(score) - MIN(score) AS 分差,
16
VARIANCE(score) AS 方差,
17
STDDEV(score) AS 标准差
18
FROM students;
✓CASE WHEN + 聚合函数可实现条件统计。VARIANCE和STDDEV用于数据分析中的离散度度量。