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

相关推荐
程序员卷卷狗39 分钟前
MySQL 高可用方案:主从 + MHA + ProxySQL + PXC 的实战应用与架构思考
数据库·mysql·架构
千千寰宇1 小时前
[数据库/数据结构] LSM-Tree :结构化的日志合并树——NewSQL数据库的基石
数据库
韩立学长2 小时前
基于Springboot的研学旅游服务系统5u416w14(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·旅游
isNotNullX2 小时前
怎么理解ETL增量抽取?
数据库·数据仓库·etl·企业数字化
IT教程资源C2 小时前
(N_141)基于springboot,vue网上拍卖平台
mysql·vue·前后端分离·拍卖系统·springboot拍卖
谅望者2 小时前
数据分析笔记14:Python文件操作
大数据·数据库·笔记·python·数据挖掘·数据分析
l1t2 小时前
调用python函数的不同方法效率对比测试
开发语言·数据库·python·sql·duckdb
honortech3 小时前
MySQL 8 连接报错:Public Key Retrieval is not allowed
数据库·mysql
q***82913 小时前
MySQL--》如何通过选择合适的存储引擎提高查询效率?
数据库·mysql·adb