oracle数据库聚合函数、分组、子查询、分页

oracle数据库聚合函数、分组、子查询、分页

聚合函数

​ 聚合函数经常与 SELECT 语句的 GROUP BY 子句一同使用,所以也把其它称之为分组函数

​ group by 子句就是按照某一个条件,给数据进行分组

select语句执行顺序:

from子句,组装来自表的数据,有可能是多张表

where子句,基于指定的条件对记录行进行筛选

group by子句,将数据划分为多个分组

使用聚合函数对没个小组中的数据进行计算

having子句,进行条件筛选,这里可以使用聚合函数的计算结果

计算所有的运算表达式,主要是select部分

order by子句,对结果集进行排序

聚合函数能够出现的位置:

select后面

having后面

order by后面

注意:where后面不能放聚合函数

where和having对比:

where和having都是做条件筛选的

where执行的时间比having要早

where后面不能出现组函数having后面可以出现组函数

where语句要紧跟from后面having语句要紧跟group by后面

group by和having的关系:

group by可以单独存在,后面可以不出现having语句

having不能单独存在,如果需要出现,那么就必须出现在group by后面

group by 分组

在使用聚合函数的时候:

如果还使用了group by分组,那么就表示先分组,然后对每一个小组使用聚合函数如果没有使用group by分组,

那么就表示全部数据是一个默认小组,然后对这个全部数据使用聚合函数。

子查询

子查询的思路就是,把第一个sql语句的查询结果,在第二个sql语句中使用,这时候第一条sql语句的结

果,在第二条sql中就可以充当一个where条件中的一个值,或者充当一张虚拟的表。

分页查询

因为表中数据过多,我们并不能一次全都查询出来交给前端去展示,而是需要每次按照提前设置好的要求,查询一部分数据给用户,当用户点击下一页的时候,再查出下一部分数据给用户。实现分页的方式有很多,并且不同数据库,实现分页查询的方式也会不同,那么在Oracle中,可以使用伪列rownum,再结合子查询来进行简单的实现。

select t.id,t.last_name,t.dept_idfrom (select rownum rn,id,last_name,dept_idfrom s_empwhere rownum<=10) twhere t.rn>=6;

查询 6-10的记录

补充:minus 表示差集,第一个结果集 除去 第二个结果集和它相同的部分 从方法效率不高

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值