【MySQL】聚合函数和分组(查找)

聚合函数

函数 说明
COUNT([DISTINCT] expr) 返回查询到的数据的 数量
SUM([DISTINCT] expr) 返回查询到的数据的 总和,不是数字没有意义
AVG([DISTINCT] expr) 返回查询到的数据的 平均值,不是数字没有意义
MAX([DISTINCT] expr) 返回查询到的数据的 最大值,不是数字没有意义
MIN([DISTINCT] expr) 返回查询到的数据的 最小值,不是数字没有意义

分组

在select中使用group by 子句可以对指定列进行分组查询

分组聚合

分组聚合主要使用的是 group by 和 having子句。分组聚合需要注意的是要先进行分组,然后再聚合。

一共有三张表:

1.EMP:员工表

2.DEPT:部门表

3.SALGRADE:工资等级表

如何显示每个部门的平均工资和最高工资

select deptno,max(sal) 最高 ,avg(sal) 平均 from emp group by deptno;

显示每个部门的每种岗位的平均工资和最低工资

select deptno,job,avg(sal) 平均,min(sal) 最低 from emp group by deptno,job;

显示平均工资低于2000的部门和它的平均工资(SMITH员工不参与)

select deptno,job,avg(sal) myavg from emp where ename!='SMITH' group by deptno,job having myavg<2000;

where 和 having 的区别

where是过滤表中数据的,而having是过滤分组数据的。在分组之前需要先通过where来拿到所要用到的数据。

相关推荐
NaiLuo_453 分钟前
MySQL表的约束
数据库·sql·mysql
kkkkkkkkl246 分钟前
彻底讲清 MySQL InnoDB 锁机制:从 Record 到 Next-Key 的全景理解
数据库·mysql
DBA小马哥12 分钟前
Oracle迁移中查询优化器原理解析与实战优化策略
数据库·oracle
gugugu.13 分钟前
Redis Hash类型深度解析:结构、原理与实战应用
数据库·redis·哈希算法
卓码软件测评15 分钟前
第三方数据库测试:【utPLSQL用于Oracle和tSQLt用于SQL Server数据库单元测试框架入门】
数据库·oracle·sqlserver·单元测试·mssql
摇滚侠20 分钟前
冒泡排序是如何排序的,图解详细说明
数据库·笔记
生命有所坚持而生存可以随遇而安41 分钟前
转载Centos7.9 MySQL 8.0 部署MGR高可用
mysql
爱打代码的小林41 分钟前
python基础(mysql)
数据库·mysql
码农阿豪43 分钟前
从 Oracle 到金仓:一次真实迁移经历的复盘与思考
数据库·oracle·金仓数据库
NewDay_44 分钟前
MYSQL: ERROR 1524 (HY000): and ERROR 1045 (28000)
mysql