MySQL(5)

聚合函数

GROUP BY 的使用

需求:查询各个部门的平均工资,最高工资SELECT department_id,AVG(salary),SUM(salary)FROM employeesGROUP BY department_id;需求:查询各个job_id的平均工资SELECT job_id,AVG(salary)FROM employeesGROUP BY job_id;需求:查询各个department_id,job_id的平均工资SELECT department_id,job_id,AVG(salary)FROM employeesGROUP BY  department_id,job_id;GROUP BY 声明在FROM后面、WHERE后面,ORDER BY 前面、LIMIT前面需求:查询各个部门的平均工资,按照平均工资升序排列SELECT department_id,AVG(salary) avg_salFROM employeesGROUP BY department_idORDER BY avg_sal ASC;

HAVING的使用 (作用:用来过滤数据的)

#练习:查询各个部门中最高工资比10000高的部门信息​​​​​​​

#错误的写法:SELECT department_id,MAX(salary)FROM employeesWHERE MAX(salary) > 10000GROUP BY department_id;

#要求1:如果过滤条件中使用了聚合函数,则必须使用HAVING来替换WHERE。否则,报错。

#要求2:HAVING 必须声明在 GROUP BY 的后面。​​​​​​​

SELECT department_id,MAX(salary)FROM employeesGROUP BY department_idHAVING MAX(salary) > 10000;

#要求3:开发中,我们使用HAVING的前提是SQL中使用了GROUP BY。

练习:查询部门id为10,20,30,40这4个部门中最高工资比10000高的部门信息

#推荐,执行效率高​​​​​​​

SELECT department_id,MAX(salary)FROM employeesWHERE department_id IN (10,20,30,40)GROUP BY department_idHAVING MAX(salary) > 10000;

结论:当过滤条件中有聚合函数时,则此过滤条件必须声明在HAVING中。    

当过滤条件中没有聚合函数时,则此过滤条件声明在WHERE中或HAVING中都可以。但是,建议大家声明在WHERE中。

 WHERE 与 HAVING 的对比

1. 从适用范围上来讲,HAVING的适用范围更广。 

2. 如果过滤条件中没有聚合函数:这种情况下,WHERE的执行效率要高于HAVING​​​​​​​

SELECT ....,....,....(存在聚合函数)FROM ... (LEFT / RIGHT)JOIN ....ON 多表的连接条件 (LEFT / RIGHT)JOIN ... ON ....WHERE 不包含聚合函数的过滤条件GROUP BY ...,....HAVING 包含聚合函数的过滤条件ORDER BY ....,...(ASC / DESC )LIMIT ...,....

聚合函数的课后练习

1.where子句可否使用组函数进行过滤?  

No

2.查询公司员工工资的最大值,最小值,平均值,总和​​​​​​​

SELECT MAX(salary) max_sal ,MIN(salary) mim_sal,AVG(salary) avg_sal,SUM(salary) sum_salFROM employees;

3.查询各job_id的员工工资的最大值,最小值,平均值,总和​​​​​​​

SELECT job_id,MAX(salary),MIN(salary),AVG(salary),SUM(salary)FROM employeesGROUP BY job_id;

4.选择具有各个job_id的员工人数​​​​​​​

SELECT job_id,COUNT(*)FROM employeesGROUP BY job_id;

5.查询员工最高工资和最低工资的差距(DIFFERENCE)  #DATEDIFF​​​​​​​

SELECT MAX(salary) - MIN(salary) "DIFFERENCE"FROM employees;

6.查询各个管理者手下员工的最低工资,其中最低工资不能低于6000,没有管理者的员工不计算在内​​​​​​​

SELECT manager_id,MIN(salary)FROM employeesWHERE  manager_id IS NOT NULLGROUP BY manager_idHAVING MIN(salary)>=6000;

7.查询所有部门的名字,location_id,员工数量和平均工资,并按平均工资降序 ​​​​​​​

SELECT d.department_name,d.location_id,COUNT(employee_id),AVG(salary)FROM departments d LEFT JOIN employees eON d.`department_id` = e.`department_id`GROUP BY department_name,location_id

8.查询每个工种、每个部门的部门名、工种名和最低工资 ​​​​​​​

SELECT d.department_name,e.job_id,MIN(salary)FROM departments d LEFT JOIN employees eON d.`department_id` = e.`department_id`GROUP BY department_name,job_id

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/704762.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

rocketmq-5.1.2的dleger高可用集群部署

1、背景 原先为5.0.0版本,因检查出有漏洞,升级到5.1.2版本。 【Rocketmq是阿里巴巴在2012年开发的分布式消息中间件,专为万亿级超大规模的消息处理而设计,具有高吞吐量、低延迟、海量堆积、顺序收发等特点。在一定条件下&#xf…

牧原发布年度低碳报告,看行业“一哥”如何数字化减碳!

此前,牧原信息化负责人何秋梅在接受绿研院的专题访谈时提到:“在销售、采购等业务上,都涉及到大量的合同和文件,传统的纸质合同保存和管理繁琐,需要档案柜存储,且成本高昂。使用电子签不仅节省了打印、盖章…

优雅迷人的小程序 UI 风格

优雅迷人的小程序 UI 风格

什么是DMZ?路由器上如何使用DMZ?

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 DMZ 📒🚀 DMZ的应用场景💡 路由器设置DMZ🎈 注意事项 🎈⚓️ 相关链接 ⚓️📖 介绍 📖 在网络管理中,DMZ(Demilitarized Zone,隔离区)是一个特殊的网络区域,常用于将公共访问和内部网络隔离开来。DMZ功能允许…

【Android面试八股文】1. 你说一说Handler机制吧 2. 你知道Handler的同步屏障吗? 3. Looper一直在循环,会造成阻塞吗?为什么?

文章目录 一. 你说一说Handler机制吧二、你知道Handler的同步屏障吗?2.1 Handler消息的分类2.2 什么是同步屏障2.3 为什么要设计同步屏障2.4 同步屏障的用法 三、Looper一直在循环,会造成阻塞吗?为什么?扩展阅读 一. 你说一说Hand…

大数据在商业中的应用——Kompas.ai如何助力企业决策

引言 在现代商业中,大数据逐渐成为企业决策的重要工具。通过对海量数据的分析和处理,企业可以获得重要的市场信息和决策支持。本文将探讨大数据在商业中的应用,并介绍Kompas.ai如何通过AI技术助力企业决策。 大数据的发展及其重要性 大数据…

项目文章 | Cell ReportsChIP-seq和RNA-seq联合鉴定伯克霍尔德氏菌毒性的重要调节因子

发表单位:中山大学深圳校区制药科学学院 发表日期:2024年5月14日 研究期刊:Cell Reports(IF: 8.8) 研究材料:伯克霍尔德氏菌 主要技术:ChIP-seq,EMSA,微尺度热泳分析…

1970-2021年各区县碳排放总量,可选择所需年份获取,shp/excel多种格式数据

基本信息. 数据名称: 1970-2021年各区县碳排放总量 数据格式: Shpexcel 数据几何类型: 面 数据坐标系: WGS84 数据来源:网络公开数据

Java面经总结

一、java基础 1.重载和重写的区别 重载: 发生在同一类中,函数名必须一样,参数类型、参数个数、参数顺序、返回值、修饰符可以不一样。重写: 发生在父子类中,函数名、参数、返回值必须一样,访问修饰符必须…

清晖项目管理资深企业咨询顾问闫清受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 清晖项目管理资深企业咨询顾问闫清女士受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾,演讲议题为“PMO的多重人工智能价值”。大会将于6月29-30日在北京举办,敬请关注! 议题简要: 在近几年的AI概…

据阿谱尔统计显示,2023年全球凹版印刷机市场销售额约为9.1亿美元

根据阿谱尔 (APO Research)的统计及预测,2023年全球凹版印刷机市场销售额约为9.1亿美元,预计在2024-2030年预测期内将以超过2.54%的CAGR(年复合增长率)增长。 由于对软包装和印刷包装的需求不断增长,全球凹…

前端问题整理

Vue vue mvvm(Model-View-ViewModel)架构模式原理 Model 是数据层,即 vue 实例中的数据View 是视图层, 即 domViewModel,即连接Model和Vue的中间层,Vue实例就是ViewModelViewModel 负责将 Model 的变化反映…

SpringCloud学习笔记 - 1、Boot和Cloud版本选型

文章目录 前言需要(学习/用到)的技术SpringBoot版本的选择我们为什么要使用 Java 17,以及SpringBoot 3.2 呢? SpringCloud 版本的选择SpringCloud 命名规则Springcloud Alibaba 版本的选择如何确定Boot,Cloud&#xff…

SQL中distinct去重关键字的使用和count统计组合的使用

文章目录 SQL中distinct的使用1、distinct作用于单列2、distinct作用于多列3、 count()、distinct组合使用conut扩展知识 SQL中distinct的使用 1、distinct作用于单列 语法: select distinct 列名 from 表; distinct必须在列的前面,否则直…

大语言模型LLM-三种模型架构

Transformer transfomer可以并行地计算? transformer中encoder模块是完全并行的,而decoder不是完全并行的。 模型结构 使用原文表达如下:the encoder maps an input sequence of symbol representations \((x_1, x_2, \cdots, x_n)\) to …

ICRA 2024:基于视觉触觉传感器的物体表⾯分类的Sim2Real双层适应⽅法

⼈们通常通过视觉来感知物体表⾯的性质,但有时需要通过触觉信息来补充或替代视觉信息。在机器⼈感知物体属性⽅⾯,基于视觉的触觉传感器是⽬前的最新技术,因为它们可以产⽣与表⾯接触的⾼分辨率 RGB 触觉图像。然⽽,这些图像需要⼤…

tmega128单片机控制的智能小车设计

第1章 绪论1.1 选题背景和意义 自第一台工业机器人诞生以来,机器人的民展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人工作的机器一…

六西格玛培训,让企业焕然一新,迎接新挑战!

在当今快速变革的商业环境中,企业要保持竞争力,就必须不断进化、优化和创新。而六西格玛培训,正是这一进化过程中的核心驱动力。 六西格玛培训不仅仅是一系列的技术和工具,更是一种深入骨髓的质量文化和持续改进的哲学。通过专业…

微服务架构 | nacos - [自动刷新配置方式 失效排查]

INDEX 1 配置方式1.1 springboot 配置1.2 springcloud 配置 2 失效排查2.1 常见失效场景2.1.1 配置不配套2.1.2 自动刷新未开启2.1.3 依赖冲突2.1.4 改错了配置文件 2.2 未知情况关键排查点 1 配置方式 nacos 的配置中心主要有两套配置方式,配置方式不互相共通&…

Qt绘图项目 - 简易表盘

发话少说&#xff0c;放码过来 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();prot…