一、语法
select 分组函数,分组后的字段
from 表
【where 筛选条件】
group by 分组的字段
【having 分组后的筛选】
【order by 排序列表】
- #查询邮箱中包含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_pac is not null
group by manager_id
//添加分组后的筛选
#查询哪个部门的员工个数>2
select count(*),department_id
from employees
group by department_id
having count(*)>2;
二、特点
使用关键字 | 筛选的表 | 位置 | |
---|---|---|---|
分组前筛选 | where | 原始表 | group by的前面 |
分组后筛选 | having | 分组后的结果 | group by 的后面 |
1、可以按单个字段分组
2、和分组函数一同查询的字段最好是分组后的字段
3、可以按多个字段分组,字段之间用逗号隔开 表达式或函数(用得少)
4、可以支持排序(放在整个分组的最后)
5、having后可以支持别名