Mysql——day03——(3)分组查询

分组查询

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

简单案例

查询每个部门的平均工资

以部门为分组,查询每个部门平均工资

sql语句

在这里插入图片描述
结果:
在这里插入图片描述

查询每个工种的最高工资

以工种为分组,查询每个工种最高工资

sql语句

在这里插入图片描述
结果:
在这里插入图片描述

查询每个位置上的部门个数

以部门所处位置分组,查询每个位置部门个数

sql语句
在这里插入图片描述
结果:
在这里插入图片描述

添加分组前筛选(group by)

查询邮箱中包含a字符的每个部门的平均工资

  1. 筛选出邮箱包含’a’员工
  2. 以部门进行分组,查询每个部门的平均工资

sql语句
在这里插入图片描述
结果:
在这里插入图片描述

查询有奖金的每个领导手下员工的最高工资

  1. 筛选出有奖金的员工
  2. 以领导进行分组,查询每个领导手下员工的最高工资

sql语句
在这里插入图片描述

结果:在这里插入图片描述

添加分组后筛选(having)

查询哪个部门的员工个数>2

  1. 以部门进行分组,查询每个部门的员工个数
  2. 筛选出员工人数>2的部门

错误查询
在这里插入图片描述
sql语句
在这里插入图片描述
结果:
在这里插入图片描述

查询每个工种有奖金的员工的最高工资>12000的工种编号和最高工资

  1. 以工种进行分组,查询每个工种有奖金最高工资的员工
  2. 筛选出最高工资>12000

sql语句
在这里插入图片描述
结果:
在这里插入图片描述

查询领导编号>102的每个领导手下员工的最低工资>5000的领导编号和最低工资

  1. 以领导进行分组,查询每个领导手下员工最低工资
  2. 筛选出领导编号>102

sql语句
在这里插入图片描述
结果:
在这里插入图片描述

按函数分组查询

按员工的姓名的长度分组,查询每一组的员工个数,筛选出员工个数>5的有哪些

  1. 查询每个长度员工个数
    sql语句
    在这里插入图片描述

结果:
在这里插入图片描述

  1. 添加筛选条件
    sql语句
    在这里插入图片描述
    结果:
    在这里插入图片描述

多个字段查询

查询每个部门每个工种的员工的平均工资

sql语句
在这里插入图片描述
结果:
在这里插入图片描述

添加排序

查询每个部门每个工种的员工的平均资并班从低到高排序

sql语句
在这里插入图片描述
结果:
在这里插入图片描述

练习

1. 查询各 job_id 的员工工资的最大值,最小值,平均值,总和,并按 job_id 升序
2. 查询员工最高工资和最低工资的差距(DIFFERENCE)
3. 查询各个管理者手下员工的最低工资,其中最低工资不能低于 6000,没有管理者的员工不计算在内
4. 查询所有部门的编号,员工数量和工资平均值,并按平均工资降序
5. 选择具有各个 job_id 的员工人数

1

sql语句
在这里插入图片描述

结果:
在这里插入图片描述

2

sql语句
在这里插入图片描述

结果:
在这里插入图片描述

3

sql语句

在这里插入图片描述
结果:
在这里插入图片描述

4

sql语句
在这里插入图片描述

结果:
在这里插入图片描述

5

sql语句
在这里插入图片描述

结果:
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绕球飞行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值