例:查询部门员工个数>3的部门名和员工个数
思路:先分组,再用聚集函数作用于分组之后的结果统计个数,再筛选
select department_name,count(*) as '员工个数'
from departments d
ineer join employees e
on e.department_id = d.departmen_id
group by department_name
having count(*)>3;
对某张表分组时,表还是原来的表,不同的是表中的内容顺序变化了,【group by 字段】将字段相同的分为一组,如上例分组之后的结果为:
之后,聚集函数count(*)会作用于每一组,即统计每一组的个数,最后统计结果为每一组(每一个department_name)都有一个个数值
所以,一般来说select后查询字段是什么,group by后面的分组就是什么