当前位置: 首页 > article >正文

【MySQL】聚合函数、group by子句

目录

聚合函数

count([distinct] column)

sum([distinct] column)

avg([distinct] column)

max([distinct] column)

min([distinct] column)

group by子句

1.如何显示每个部门的平均薪资和最高薪资

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

3.显示平均工资低于2000的部门和该部门的工资

having

4.显示平均工资低于2000的部门和该部门的工资,姓名为SMITH的雇员不参与统计

where和having有什么区别?


聚合函数

count([distinct] column)

返回查询数据的数量

sum([distinct] column)

返回查询到的数据的总和

avg([distinct] column)

返回查询到数据的平均值

max([distinct] column)

返回查询到数据的最大值

min([distinct] column)

返回查询到数据的最小值

group by子句

现在有一个雇员表,包含empno(雇员编号)、ename(雇员姓名)、job(岗位)、sal(薪资)、deptno(部门)。

1.如何显示每个部门的平均薪资和最高薪资

select deptno, max(sal) 最高,avg(sal) 平均 from EMP group by deptno;
//这里的group by语句是将部门分组,进而再通过聚合函数avg、max计算出各部门的平均薪资和最高薪资
//select 后跟depton

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

select deptno,job,avg(sal) 平均, min(sal) 最低 from emp group by deptno,job;
//group by子句后可跟多个列进行分组 

这样写可以吗?不可以

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

这句指令的意思是显示各部门每种岗位的薪资平均值,并显示雇员姓名,这在逻辑上是行不通的,

在使用group by子句时,select后只能跟,group by后的字段名(列名),如果select后出现其他列名,mysql会报错。

3.显示平均工资低于2000的部门和该部门的工资

select deptno, avg(sal) depavg from emp group by deptno having depavg<2000;

having

having与group by配合使用,用于对分组后聚合统计后的数据进行筛选。

4.显示平均工资低于2000的部门和该部门的工资,姓名为SMITH的雇员不参与统计

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

where和having有什么区别?

执行顺序不一样,对数据筛选的阶段不同。

 


http://www.kler.cn/a/329769.html

相关文章:

  • 4.Spring AI Prompt:与大模型进行有效沟通
  • WOA-CNN-GRU-Attention、CNN-GRU-Attention、WOA-CNN-GRU、CNN-GRU四模型对比多变量时序预测
  • 协程(还需要输入3个字)
  • LabVIEW实车四轮轮速信号再现系统
  • Web渗透测试之伪协议与SSRF服务器请求伪装结合? 能产生更多的效果
  • 【经济学通识——国债】
  • Vue 常用的指令用法
  • “大数据+高职”:VR虚拟仿真实训室的发展前景
  • 2、Objects类(为什么重写 equals方法必须重写 hashCode方法)、无序性+随机性+不可重复性的区别
  • Android Studio 占满C盘快速解决方法
  • Matlab|考虑阶梯式碳交易与供需灵活双响应的综合能源系统优化调度
  • 《向量数据库指南》——非结构化数据挑战升级:如何高效导入向量数据库?
  • Android 开发每日定时任务
  • Elasticsearch 使用误区之六——富文本内容写入前不清洗
  • Host文件及switchhosts for mac下载
  • vue3打包疯狂报错
  • 域内用户名枚举 实验
  • 计算机网络的整体认识---网络协议,网络传输过程
  • 媒体专访 | 探寻国家级农业产业化重点龙头企业九三食品的数字化转型破局之路
  • 如何让虚拟机与本地电脑使用同一个ip
  • 基于安卓开发大型体育场管理系统的设计与实现(源码+定制+讲解)
  • 服务器虚拟化软件介绍
  • 【C++掌中宝】从std的角度来进一步了解命名空间
  • AndroidStudio导入so文件
  • 简单理解程序地址空间:Linux 中的内存映射与页表解析
  • 基于单片机语音智能导盲仪仿真设计