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

news/2024/12/21 22:01:53/

目录

聚合函数

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.ppmy.cn/news/1533950.html

相关文章

华为云LTS日志上报至观测云最佳实践

华为云LTS简介 华为云云日志服务&#xff08;Log Tank Service&#xff0c;简称 LTS&#xff09;&#xff0c;用于收集来自主机和云服务的日志数据&#xff0c;通过海量日志数据的分析与处理&#xff0c;可以将云服务和应用程序的可用性和性能最大化&#xff0c;为您提供实时、…

【微服务】springboot 实现动态修改接口返回值

目录 一、前言 二、动态修改接口返回结果实现方案总结 2.1 使用反射动态修改返回结果参数 2.1.1 认识反射 2.1.2 反射的作用 2.1.3 反射相关的类 2.1.4 反射实现接口参数动态修改实现思路 2.2 使用ControllerAdvice 注解动态修改返回结果参数​​​​​​​ 2.2.1 注解…

【鸿蒙学习】深入了解UIAbility组件

文章目录 组件概述生命周期启动模式基本用法 在鸿蒙操作系统&#xff08;HarmonyOS&#xff09;的开发过程中&#xff0c;UIAbility组件是构建应用界面的关键。本文将带您了解UIAbility组件的概述、生命周期、启动模式以及基本用法&#xff0c;并通过代码示例帮助您更好地掌握这…

【Android】Jetpack组件之LifeCycle

引言 Lifecycle组件是Android Jetpack架构组件之一&#xff0c;它提供了一种方法来管理Android组件&#xff08;如Activity、Fragment和服务&#xff09;的生命周期。Lifecycle组件帮助你执行与生命周期相关联的操作&#xff0c;确保在适当的时间发生适当的事情&#xff0c;例…

STM32中断控制点灯

1.使能GPIO时钟&#xff1a; __HAL_RCC_GPIOA_CLK_ENABLE(); //使能GPIOA时钟 2.设置GPIO输入模式 2.1设置AFIO&#xff08;开启时钟&#xff0c;IO口映射&#xff09; 2.2设置EXTI&#xff08;屏蔽&#xff0c;上/下沿&#xff09; 第二项使用 HAL_GPIO_Init &#xff0c;…

Linux下的驱动开发一

设备驱动 设备驱动程序&#xff08;Device Driver&#xff09;是操作系统中的一种软件组件&#xff0c;负责管理和控制计算机硬件设备的工作。驱动程序通过提供操作系统和硬件设备之间的接口&#xff0c;使得操作系统和应用程序能够与硬件设备进行交互&#xff0c;而无需了解硬…

Elasticsearch基础_5.ES聚合功能

文章目录 一、数据聚合1.1、桶聚合1.1.1、单维度桶聚合1.1.2、聚合结果排序1.1.3、限定聚合范围 1.2、Metric聚合 二、聚合总结 本文只记录ES聚合基本用法&#xff0c;后续有更复杂的需求可以查看相关书籍&#xff0c;如《Elasticsearch搜索引擎构建入门与实战》 一、数据聚合…

Spring Boot+VUE《班级综合测评管理系统》

文章目录 前言 一、总体设计 二、数据库设计 概念模型设计: 教师管理实体图所示&#xff1a; 三、系统功能的详细设计与实现 1 管理员功能模块 2学生功能模块 3教师功能模块 四、资源下载链接 前言 本课题在充分研究了在Springboot框架基础上&#xff0c;采用B/S模式&#xff0…