oracle partition by group by,詳解partition by和group by對比

mcxiaoracle發表於2022-07-19

    

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部落格 ” ,連結:http://blog.itpub.net/69949806/viewspace-2906341/,如需轉載,請註明出處,否則將追究法律責任。

相關文章