ITPub博客

首页 > 数据库 > Oracle > oracle partition by group by,详解partition by和group by对比

oracle partition by group by,详解partition by和group by对比

Oracle 作者:mcxiaoracle 时间:2022-07-19 00:10:18 0 删除 编辑

    

1. group by是分组函数,partition by是分析函数(然后像sum()等是 聚合函数);

           

from > where > group by > having > order by

    

3.partition by相比较于group by,能够在保留全部数据的基础上,只对其中某些字段做分组排序(类似excel中的操作),而group by则只保留参与分组的字段和聚合函数的结果(类似excel中的pivot)。

3.partition by相比较于group by,能够在保留全部数据的基础上,只对其中某些字段做分组排序(类似excel中的操作),而group by则只保留参与分组的字段和聚合函数的结果(类似excel中的pivot)。


group by不允许group by以外的列出现在查询里, partition by允许所有列出现在查询里。


row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。 与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪劣rownum然后再进行排序,而row_number()在包含排序从句后是先排序再计算行号码。


2.1 跟rownum 类似,row_number() 也是在查询结果中插入一个伪列,用以显示每一行的序列,但是row_number()不可单独使用,一般结合over(<window specification>)一起使用


使用row_number()时RN的值按1,2,3,4 顺序升序排列,不会重复

使用rank()时,对于值相同的行RN的值也相同,比如四行数据的第二行和第三行相同,那么RN的值是:1,2,2,4



推荐阅读:

https://blog.csdn.net/weixin_42683394/article/details/116437450

推荐阅读:

https://blog.csdn.net/shandeai520/article/details/103350808?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0-103350808-blog-83980293.pc_relevant_aa&spm=1001.2101.3001.4242.1&utm_relevant_index=2


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69949806/viewspace-2906341/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
数据方向,了解oracle ,IBM DB2 730

注册时间:2019-09-30

  • 博文量
    286
  • 访问量
    226599