码迷,mamicode.com
首页 > 其他好文 > 详细

5.5 进阶5:分组查询

时间:2021-06-02 15:16:23      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:ike   技巧   ast   包含   字符   分组查询   员工   manager   email   

5.5 进阶5:分组查询

5.5.1 语法

select 查询的字段,分组函数
from 表
where 筛选条件
group by 分组的字段
having 分组后的字段筛选
order by 子句

5.5.2 使用技巧

  • 分组查询中的筛选条件分为两类

    • 分组前筛选:原始表 group by的前面 where
    • 分组后筛选:分组后的结果集 group by的后面 having
    • 分组函数做条件肯定是放在having子句中
    • 和分组函数一同查询的字段最好是分组后的字段,如果是分组前的字段,使用where 筛选
  • group by分组

    • 可以按单个字段分组
    • 可以按多个字段分组,字段之间用逗号隔开
  • 分组筛选
    针对的表 位置 关键字

  • 可以支持排序,排序是放在整个分组排序的后面

  • having后可以支持别名

5.5.3 案例

  • 案例1:查询每个工种的最高工资
select max(salary), job_id
from employees
group by job_id;
  • 案例2:查询每个位置上的部门个数
select count(*),location_id
from employees
group by location_id;
  • 案例3:查询邮箱中包含a字符的,每个部门的平均工资
select max(email), avg(salary),department_id
from employees
where email like ‘%a%‘
group by department_id;
  • 案例4:有奖金的每个领导手下员工的最高工资
select max(salary),manager_id
from employees
where commission_pct is null
group by manager_id;
  • 案例5:查询那个部门的员工个数>2
# 查询每个部门的员工个数
select count(*) ,department_id
from employees
group by department_id
# 根据1的结果进行筛选,查询那个部门的员工个数>2
# 根据分组筛选后的结果集,得出最后的结果
having count(*)>2;
  • 案例6:查询每个工种有奖金的员工的最高工资>12000的工种编号和最高工资
# 查询每个工种有奖金的员工的最高工资
select max(salary), job_id
from employees
where commission_pct is not null
group by job_id
# 根据1的结果继续查询
having max(salary)>12000;
  • 案例3:查询领导编号>102的每个领导手下最低工资>5000的领导编号时哪个,以及其最低工资
# 查询领导编号>102的每个领导手下的员工的最低工资
# 添加筛选条件>102
select min(salary), manager_id
from employees
where manager_id > 102
group by manager_id
# 最低工资>5000的领导编号
having min(salary)>5000;
  • 案例8:按员工姓名的长度分组,查询每一组的员工个数,筛选员工个数>5的有哪些
# 查询每个长度的员工个个数
select count(*), length(last_name) len_name
from employees
group by length(last_name)
# 添加筛选条件
having count(*)>5;
  • 案例9:查询每个部门每个工种的员工的平均工资,并且按平均工资的高低显示
select avg(salary),department_id,job_id
from employees
where department_id is not null
group by department_id,job_id
having a>10000
order by avg(salary) desc;

5.5 进阶5:分组查询

标签:ike   技巧   ast   包含   字符   分组查询   员工   manager   email   

原文地址:https://www.cnblogs.com/qifanren/p/14814500.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!