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

MySQL分组查询

问题:查询员工表中,每个不同部门分别的平均工资

分组查询:group by关键字实现分组,group by放在where条件语句之后,order by放置中group by的后面,一会儿还会学到的having关键字,总体的循序先后为:

where条件 , group by 分组语句 , having 分组的条件 , order by排序语句
where条件是针对所有记录的,having条件只是局限的针对每一组的记录的

分组查询语法:

select
列(这个列要求必须只能是group by的后面字段),分组函数()
from
表名
where
筛选条件(针对表的所有记录)
group by
分组字段列表
having(只能配合group by使用)
与分组有关的筛选条件(针对分组后的每组内记录)
order by
排序

案例:查询每个工种的最高工资

select max(salary) , job_id from employees group by job_id;

案例:查询每个地方的部门个数

select count(*),location_id from departments group by location_id;

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

select count(*) 个数, avg(salary),department_id,job_id
from employees
group by department_id,job_id;

(部门号和工种号都相同的员工分一组)

案例:查询员工邮箱里包含"a"字母的,每个部门的平均工资

select avg(salary) 部门平均工资,department _id
from employees
where email like '%a%'
group by department_id

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

select max(salary) 最高工资,manager_id
from employees
where commission_pct is not null
group by manager_id;

案例:查询部门的员工个数>5的所有部门的员工数

1)查询每个部门的员工个数
select count(*) c,department_id
from employees;
group by department_id;
2)在第一步的结果中找那个部门的员工个数>2
select count(*) c,department_id
from employees;
group by department_id
having c>5;

案例:查询的没有奖金的每个领导手下员工的最高工资,且工资大于12000

1)首先查询每个领导手下没有奖金的
select max(salary) 最高工资,manager_id
from employees
where commission_pct is null
group by manager_id;
2)在1点结果中在选工资大于12000
select max(salary) maxsalary,manager_id
from employees
where commission_pct is null
group by manager_id
having maxsalary>12000;
还可以在分组后的结果进行排序:
select max(salary) maxsalary,manager_id
from employees
where commission_pct is null
group by manager_id
having maxsalary>12000
order by maxsalary desc;

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

相关文章:

  • 文件系统和日志管理 附实验:远程访问第一台虚拟机日志
  • luogu P2196
  • 不愧是阿里巴巴最新开源的Java面试笔记,30万字精华总结 + 面试1300问附答案整理
  • 【案例分享】借助 iSpring,创造客户真正欣赏的专业在线培训体验
  • 鸿蒙开发案例:七巧板
  • .NET 8 中 Entity Framework Core 的使用
  • jmeter基础03_汉化jmeter界面
  • 什么是PureScript,有什么特点
  • 从0开始学习机器学习--Day18--评估模型
  • sqoop问题汇总记录
  • gitlab-runner中搭建nvm、nrm以及优化maven打包
  • idea、pycharm等软件的文件名红色怎么变绿色
  • Power Apps:如何通过修改 SharePoint 权限限制用户编辑列表
  • 16通道AD采集方案,基于复旦微ARM + FPGA国产SoC处理器平台
  • Redis生产问题(缓存穿透、击穿、雪崩)——针对实习面试
  • QT信号和槽与自定义的信号和槽
  • Qt低版本多网卡组播bug
  • 智能获客SCRM提升客户管理效率的全新解决方案
  • 如何在 uniapp 中实现图形验证码
  • m6ATM
  • 一文解秘Rust如何与Java互操作
  • ArkTS中的组件基础、状态管理、样式处理、class语法以及界面渲染
  • 实战攻略 | ClickHouse优化之FINAL查询加速
  • 雷军-2022.8小米创业思考-11-新零售:用电商思维做新零售,极致的效率+极致的体验。也有弯路,重回极致效率的轨道上。
  • 数据库期末考试简答题
  • 元器件篇——自恢复保险丝(PPTC)