MySQL 视频课 · 50 集 / DQL 基础:基础查询、条件查询、聚合函数 / P17

第 17 集 / 共 50 · DQL 基础:基础查询、条件查询、聚合函数 · 视频 p=17 · 时长 6:39

P17 17. 基础-SQL-DQL-聚合函数

讲义 2.6.4 聚合函数 p45–46

按主题对应,非逐句切分

来源与核对说明

以同版讲义的公开镜像核对章节与页码(镜像非官方出品);非逐字稿,示例为原创补充。

本页是学习笔记,不等同于视频逐字稿。原声字幕未取得(匿名接口字幕轨为空且需登录,未使用任何账号),也没有逐句讲解记录;讲义只按节与页码对应,切点未逐句确证。

讲义索引:p45–46 · 2.6.4 聚合函数 · 切点 notexact

讲义是第三方公开镜像(95 页 PDF),不是官方原件;这里只用它核对章节顺序与页码,不转载正文。

完整来源说明与变更记录 →

看视频,对照阅读:在新标签打开原视频(p=17)

把多行算成一个数,顺便理解 NULL 对统计的影响。

复习模式:快速跳知识点(详解在下方各节)

复习顺序:先看“一句话理解”能否复述,再扫步骤,最后做自测;答不出时回到小例与易错。

一句话理解

聚合函数把多行压成一个数:一共多少人、平均多少、最大最小、总和。这一集讲 COUNT、AVG、MAX、MIN、SUM。

按这 4 步做

  1. 五个函数各管一件事:COUNT() 数行、AVG() 平均、MAX() 最大、MIN() 最小、SUM() 求和。参数写列名,COUNT(*) 数的是行。
  2. 它们都把一整列(或整张表)算成一个值,所以不写 GROUP BY 时,结果只有一行。
  3. 关键差别:COUNT(*) 数所有行,COUNT(列名) 跳过该列为 NULL 的行;AVG 和 SUM 同样忽略 NULL。
  4. 所以“平均薪水”用 AVG(salary) 时,没填薪水的人不参与分母。想按“包括没填的人”算,要先想清楚业务定义。

小例

先准备本集练习数据:p17.sql · 练习库说明

SQL 示例
SELECT COUNT(*) AS 总人数,
       COUNT(salary) AS 有薪水人数,
       AVG(salary) AS 平均薪水
FROM employee;

结果一行三列:总人数 4、有薪水人数 3、平均薪水 10000.00。因为小李的 salary 是 NULL,被 COUNT(salary) 和 AVG 跳过;10000 =(8000+10000+12000)÷3,不是除以 4。看这三个数就能理解 NULL 对统计的影响。

易错点

30 秒速记

COUNT 数、AVG 均、MAX/MIN 极值、SUM 和;不分组只出一行;聚合忽略 NULL。

自测(2 题,先答再展开)

自测 1:员工 4 人,其中 1 人薪水为 NULL,COUNT(*) 和 COUNT(salary) 各是多少?

COUNT(*) 是 4,COUNT(salary) 是 3。前者数行,后者只数该列非 NULL 的值。

自测 2:为什么 AVG(salary) 不等于 SUM(salary)/COUNT(*)?

AVG 的分母是 COUNT(salary),即非 NULL 的行数;COUNT(*) 把 NULL 行也算进分母,会把平均值拉低。两种算法对应不同的业务口径。

材料与来源

展开材料出处、讲义页码与证据等级
材料类型 / 位置支持了什么
B站原视频 P17《17. 基础-SQL-DQL-聚合函数》平台视频页 · P17标题、时长与分 P 信息取自平台公开页面;仅作外链,不在站内播放
本集采样画面 p17_t30.jpg(约 119s)平台视频页 · P17 / 约 119s已人工查看该帧:Workbench 中“聚合函数”练习:注释列出 COUNT/AVG/MAX/MIN/SUM 五项统计任务,左侧为 emp 表;只证明这一画面,不代表整集讲解
MySQL 8.0 Reference Manual: Aggregate Functions官方文档语法条目备查,未逐字引用

以同版讲义公开镜像核对:讲义 2.6.4 聚合函数(p45–46)。原声字幕未取得(匿名接口字幕轨为空且需登录),讲师逐句讲解未核;本页示例、表与数字为站内原创,不是课堂原表。

讲义对照:讲义 2.6.4 聚合函数 · p45–46(公开镜像;按主题对应,切点 notexact)

  • 画面静帧 9 帧,采样点 0:12–6:26 / 全片 6:39(只用于确认画面主题,不作内容边界)
  • 原声字幕未取得:匿名接口字幕轨为空且需登录,未使用任何账号

等级含义:平台视频页 / 官方文档 / 课件 = 原始材料;二手整理 = 参考;推断 = 未经核实。站内补充的解释与练习会在此说明。

下载本集 Markdown