聚合函数
经常与select 语句的 group by 子句一同使用,所有也成为分组函数
常用聚合函数:
- avg
- count
- max
- min
- sum
执行顺序
select 语句执行顺序
- from
- where
- group by
- 使用聚合函数对每个小组中的数据进行计算
- having
- 计算所有的运算表达式,主要是 select 部分
- order by
聚合函数出现位置
- select 后面
- having 后面
- order by 后面
where 后面一定不能出现组函数。
如果 select,having 语句后面出现了组函数,那么select,having 后面没有被组函数修饰的列,就必须出现在 group by 后面。
where 和 having 对比:
- where 和 having都是对数据进行筛选
- where 的执行时间比 having 早
- where 后不能出现组函数
- having 后可以出现组函数
- where 紧跟 from 后面
- having 紧跟 group by 后面
group by 和 having的关系:
- group by 可以单独存在
- having 不能单独存在,必须在 group by 后面
order by 语句:
- 如果 sql 要排序,那么一定放在最后面
- order by 后面可以写组函数
默认分组
使用聚合函数的时候:
- 如果还使用了 group by 分组,那么表示先分组,然后对每一个小组使用聚合函数
- 如果没有使用 group by 分组,那么表示所有数据是一个默认小组。
子查询
也称嵌套查询,一个 select 语句中嵌套了另一个或者多个 select 语句
分页查询
实现:通过 rownum 表示为一个查询结果的行号,从1 开始,连续不断。结合子查询完成分页rownum当作条件查询时,只能:
- 等于1
- 大于0
- 小于任何数