一、分组查询
例题1
#查询各部门的总人数 已部门的id分组,查询各分组
SELECT department_id,COUNT(employee_id)
FROM t_employees
GROUP BY department_id;
例题2
#查询各部门的平均工资
SELECT department_id,AVG(salary)
FROM t_employees
GROUP BY department_id;
例题3
查询各个部门、各个岗位的人数
思路:
1. 按照部门id分组
2. 按照job_id分组
3. 对每个部门中的各个job进行人数统计
#查询各个部门、各个岗位的人数
SELECT department_id,job_id,COUNT(employee_id)
FROM t_employees
GROUP BY department_id,job_id;
例题4
#查询各个部门id、总人数、first_name
SELECT department_id ,COUNT(*),first_name
FROM t_employees
GROUP BY department_id;
二、分组过滤查询
#统计部门的最高工资
#统计30,90号部门的最高工资
#思路:
# 1确定分组依据
# 2对分组后的数据,活驴出部门编号30,90
# 3max()函数处理
SELECT department_id,MAX(salary)
FROM t_employees
GROUP BY department_id
HAVING department_id IN (30,90);
三、限定查询
#查询前5条,第0行才是第1行
SELECT * FROM t_employees LIMIT 0,5;
LIMIT典型应用 :分页查询:一页显示10条
#第一页从0开始,显示10条
SELECT * FROM LIMIT 0,10;
#第二页从10开始,显示10条
SELECT *FROM LIMIT 10,10;
#第三页从20开始,显示10条
SELECT * FROM LIMIT 20,10
查询总结
where
group by
having
limit
order by 排序