分组后的筛选子句HAVING:
语法:
SELECT
FROM
WHERE 分组前,行做筛选
GROUP BY
HAVING 分组后条件筛选
ORDER BY;
注意:
1.执行顺序:FROM->WHERE,行筛选->GROUP BY,对筛选后结果分组->
HAVING,对分组后的结果筛选->SELECT->ORDER BY
2.HAVING在是GROUP BY基础之上,没有GROUP BY就没有HAVING
3.WHERE是对行的筛选,里面可以用列,单行函数等,但不能直接使用组函数
4.HAVING是对组的筛选,里面可以使用分组的列或者组函数筛选,
直接使用单行函数,没有分组的列等不可以
eg1:查询部门人数高于2人的部门编号,部门人数
SELECT dept_id,COUNT(id)
FROM s_emp
GROUP BY dept_id
HAVING COUNT(id)>2;
eg2:查询部门每个员工薪资都高于1000的部门编号
SELECT dept_id,MIN(salary)
FROM s_emp
GROUP BY dept_id
HAVIN