關於sql當中的group by 和partition by 的區別。
阿新 • • 發佈:2018-08-23
的區別 輸出 sel color 輸出類型 區別 inf col code
今天在做一個實驗的時候碰到了關於group by 和partition by 的區別,簡單的總結一下。
實驗的題目是,按照類型進行分組,然後對其金額進行累加。然後輸出類型對應的金額總和:
SELECT TRANS_TYPE, SUM(TRANS_AMT) FROM UTTDB.UTT_TRANS_LOG GROUP BY TRANS_TYPE
這個輸出的結果是按照不同的交易類型,然後對金額進行累加。
SELECT TRANS_TYPE, SUM(TRANS_AMT) OVER (PARTITION BY TRANS_TYPE ) AS sumcount FROM UTTDB.UTT_TRANS_LOG
這個是用 PARTITION BY進行分組,然後統計。他的運行結果如下:
我們可以看出他是對數據進行分組,然後累加求和,但是他不會去重,會把這個字段的所有的值都顯示出來。
綜上的這樣額結果,group by 會分組統計,然後對字段的值去重操作。只顯示唯一的類型。
而對於partition by 來說的話,他只是對要分組的字段分組,然後累加出來,對前面類型字段並不統一去重。
而
關於sql當中的group by 和partition by 的區別。