目录
一、聚合查询概述
二、聚合函数查询
2.1 常用函数
2.2 使用函数演示
2.3 聚合函数参数为*或列名的查询区别
2.4 字符串不能参与数学运算
2.5 具有误导性的结果集
三、分组查询 group by
四、分组后条件表达式查询
五、MySQL 中各个关键字的执行顺序
一、聚合查询概述
MySQL查询数据时,通过where等关键字组成条件表达式对列与列之间的数据进行运算。但是行与行之间的运算则无法通过条件表达式来描述,此时就需要使用聚合查询的方式进行查询操作。
聚合查询的常用方式: | 聚合函数查询 |
分组查询 | |
分组后条件表达式查询 |
二、聚合函数查询
2.1 常用函数
函数 | 释义 |
count(*或列名) | 返回查询到的数据的行数(数量) |
sum(*或列名) | 返回查询到的数据的总和,只能计算数字 |
avg(*或列名) | 返回查询到的数据的平均值,只能计算数字 |
max(*或列名) | 返回查询到的数据的最大值,只能计算数字 |
min(*或列名) | 返回查询到的数据的最小值,只能计算数字 |
2.2 使用函数演示
执行步骤: | 先执行查询语句 select *或列 from 表; |
再执行聚合函数; |
2.3 聚合函数参数为*或列名的查询区别
聚合函数参数为*或列名的查询区别 | 当查询内容为null时 |
参数为* | null参与计算,当null参与计算时,结果通常为null |
参数为列名 | null不参与计算,忽略null |
2.4 字符串不能参与数学运算
2.5 具有误导性的结果集
由上述可知,非聚合查询和聚合查询不能在同一语句中混用!
只有一个情况是例外的 —— 使用分组查询 group by 时。
三、分组查询 group by
group by 是进行分组查询时使用的关键字,表示将根据关键字后的列名对数据进行分组,列中数值相同的数据将被分成一组。
group by 通常搭配聚合函数使用。
除被 group by 的列,其他字段想出现在同一查询语句中,则必须包含在聚合函数中。
四、分组后条件表达式查询
使用 group by 子句对进行分组后,如果还需要对分组结果再进行条件过滤时,不应使用 where 语句,而要使用 having 关键字。
使用 having 关键字是针对分组之后的数据进行条件过滤的。
where 关键字 和 having 关键字 的区别 | |
where | 用于分组之前的条件筛选 |
having | 用于分组之后的条件筛选 |
五、MySQL 中各个关键字的执行顺序
from | on | join | where | group by | with | having | select | distinct | order by | limit |
关键字从左到右,优先级依次从高到低。优先级高的关键字先执行。
阅读指针 -> 《MySQL表数据的 CRUD 进阶操作 -- 联合查询》
链接生成中..............