【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来拿到所要用到的数据。

相关推荐
Greyscarf6 分钟前
人大金仓服务启动
数据库
是娇娇公主~9 分钟前
快速了解MySQL索引(什么是索引,分类)
mysql
张较瘦_19 分钟前
MySQL | 文本数据类型(CHAR/VARCHAR/TEXT/BLOB):区别、场景与实战
数据库·mysql
悄悄敲敲敲30 分钟前
MySQL内置函数
数据库·mysql
小北方城市网32 分钟前
第 5 课:后端工程化进阶 ——Python 分层架构 + 中间件 + 日志 / 异常统一处理(打造企业级高可用后端)
数据库·人工智能·python·mysql·数据库架构
m0_5981772334 分钟前
SQL(5)- 事务
java·数据库·sql
郝学胜-神的一滴38 分钟前
Qt重复添加控件问题探析:现象、原理与解决方案
开发语言·数据库·c++·qt·程序人生
星空椰40 分钟前
Windows 安装 Oracle 19c Instant Client
数据库·windows·oracle
万象.41 分钟前
redis通用命令与数据结构
数据结构·数据库·redis
西柚小萌新43 分钟前
【大模型:RAG】--向量数据库Milvus详解2
数据库·milvus