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/
,如需转载,请注明出处,否则将追究法律责任。