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

相关推荐
木风小助理3 分钟前
JavaStreamAPI的性能审视,优雅语法背后的隐形成本与优化实践
java·前端·数据库
Knight_AL14 分钟前
MySQL InnoDB 锁机制深度解析:行锁、表锁、间隙锁、临键锁(Next-Key Lock)
数据库·mysql
良策金宝AI1 小时前
工程设计企业AI试用落地路径:从效率验证到知识沉淀
数据库·人工智能·知识图谱·ai助手·工程设计
panzer_maus1 小时前
Redis的简单介绍(2)-处理过期Key的策略
数据库·redis·缓存
仗剑恬雅人1 小时前
LINUX数据库高频常用命令
linux·运维·服务器·数据库·ssh·运维开发
Traced back1 小时前
# Windows窗体 + SQL Server 自动清理功能完整方案优化版
数据库·windows·.net
mifengxing1 小时前
操作系统(一)
大数据·数据库·操作系统
纯爱掌门人2 小时前
鸿蒙端云一体化开发(二):云数据库
数据库·华为·harmonyos·端云一体化
l1t2 小时前
DeepSeek辅助总结的测试PostgreSQL数据库插入性能方法
数据库·postgresql
赫萝的红苹果2 小时前
实验探究并验证MySQL innoDB中的各种锁机制及作用范围
android·数据库·mysql