·新学习·新旅程 NEW TERM
Oracle学习笔记_6_分组查询
分组查询
# 分组查询主要涉及两个语句,group by 和 having
GROUP BY
# group by 进行查询结果分组
-- 按照班统计各班的人数
select class,count(*) from stu group by class;
-- 按照班级、省份统计各班的人数
select class,pro,count(*) from stu group by class,pro;
出现在查询列表中的字段,要么出现在组函数中,要么出现在group by 中
也可以只出现在group by 中
group by 后可以跟order by 进行排序
HAVING
# having 对分组之后的数据进行过滤
-- 取得每个岗位的平均工资大于 2000
select job, avg(sal) from emp group by job having avg(sal) >2000;
如果想对分组数据再进行过滤需要使用 having 子句
分组函数的执行顺序:
1、 根据条件查询数据
2、 分组
3、 采用 having 过滤,取得正确的数据
原则:可以在 where 语句中过滤的数据,不要使用 having 过滤。
SELECT 总结
# 一个完整的select语句格式
select 字段
from 表名
where …
group by ...
having ...
order by ...
以上语句的执行顺序
首先执行 where 语句过滤原始数据
执行 group by 进行分组
执行 having 对分组数据进行操作
执行 select 选出数据
执行 order by 排序
简单的分组查询
2021/9/21






