Oracle – PARTITION BY

在 Oracle 中,PARTITION BY 子句用於分析函數中,用來將結果集劃分成不同的分區。這些分區由 PARTITION BY 子句指定的一組列定義,每個分區內的計算是獨立進行的。這在進行累積計算、排名、移動平均等操作時非常有用。

使用PARTITION BY 進行排名

  • sale_id:銷售ID
  • salesman_id:業務員ID
  • amount:銷售金額
  • sale_date:銷售日期

這會根據條近 salesman_id 進行分類 並且透過 order by 的 amount 進行排序給定對應的值 ( 從 1開始~)

使用 PARTITION BY 計算累計總和

這個查詢會根據 salesman_id 將資料劃分成不同的分區,並在每個分區內根據 sale_date 計算銷售金額的累計總和。

使用 PARTITION BY 計算移動平均

這個查詢會根據 salesman_id 將資料劃分成不同的分區,並在每個分區內計算移動平均值,範圍是當前行及前兩行的數值。

參考連結 : link