0
点赞
收藏
分享

微信扫一扫

13MySQL聚合函数

霸姨 2022-04-19 阅读 72

目录

聚合函数介绍

什么是聚合函数

聚合函数类型

聚合函数语法​

聚合函数不能嵌套调用。

AVG / SUM :只适用于数值类型的字段(或变量)

拓展:字符串求总和:MySQL中 0 Order 直接报无效的数字

MAX / MIN :适用于数值类型、字符串类型、日期时间类型的字段(或变量)

字符串可以比较 大小

COUNT:

计算表中有多少条记录,如何实现?

如何需要统计表中的记录数,使用COUNT(*)、COUNT(1)、COUNT(具体字段) 哪个效率更高呢?

其他聚合函数:

GROUP BY 的使用

单列分组

实例1:查询各个部门的平均工资,最高工资

实例2:查询各个job_id的平均工资

实例3:查询各个department_id,job_id的平均工资

注意:错误写法

结论:

 使用多个列分组

案例:查询各个部门的平均工资,按照平均工资升序排列

说明:

HAVING

过滤分组:HAVING子句 

 案例:查询 个个部门的最大工资,并且最大工资大于 1000的 部门 

非法使用聚合函数 : 不能在 WHERE 子句中使用聚合函数:

 要求:

案例:查询部门id为10,20,30,40这4个部门中最高工资比10000高的部门信息

结论:

WHERE 与 HAVING 的对比

引出问题:为什么where 的效率要比 having的效率高? 看SQL的执行原理

SQL底层执行原理

查询的结构

SQL语句的执行过程:

WHERE 为什么不包含聚合函数的过滤条件?

为什么where 的效率要比 having的效率高?


聚合函数介绍

AVG / SUM :只适用于数值类型的字段(或变量)

MAX / MIN :适用于数值类型、字符串类型、日期时间类型的字段(或变量)

COUNT:

其他聚合函数:

        如:方差、标准差、中位数

GROUP BY 的使用

单列分组

 使用多个列分组

HAVING

引出问题:为什么where 的效率要比 having的效率高? 看SQL的执行原理

SQL底层执行原理

查询的结构

SQL语句的执行过程:

WHERE 为什么不包含聚合函数的过滤条件?

为什么where 的效率要比 having的效率高?

举报

相关推荐

0 条评论