老爹寫程式

跳到主文

享受每行程式所帶來的新奇與成就. 更熱愛著問題被解決的剎那甜美.

部落格全站分類:職場甘苦

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 11月 20 週六 201015:06
  • Oracle over partition by

 

Oracle over partition by

假設一個公司的薪資資料如下.
DEPT  NAME  SALARY
-------------------------
RD1ANDY120
RD1KEN140
RD1KUO180
HR1BEN180
RD2YANG130
RD2RAY180

1. 統計每個人佔部門總薪資的比例
select dept,name,salary, salary/sum(salary)over(partition by dept) as ratio from salary
HR1BEN1801
RD1ANDY1200.27
RD1KEN1400.31
RD1KUO1800.40
RD2YANG1300.41
RD2RAY1800.58

2. 統計每個人佔整公司的比例
select dept,name,salary, salary/sum(salary)over(partition by null) as ratio from salary
RD1ANDY1200.12
RD1KEN1400.15
RD1KUO1800.19
HR1BEN1800.19
RD2YANG1300.13
RD2RAY1800.19

3. 排序每個部門薪資由高至低
select dept,name,salary, rank() over(partition by dept order by salary desc) as rank from salary
HR1BEN1801
RD1KUO1801
RD1KEN1402
RD1ANDY1203
RD2RAY1801
RD2YANG1302

4. 排序整公司薪資由高至低 rank()
select dept,name,salary, rank() over(partition by null order by salary desc) as rank from salary
RD1KUO1801
HR1BEN1801
RD2RAY1801
RD1KEN1404
RD2YANG1305
RD1ANDY1206

4. 排序整公司薪資由高至低 dense_rank()
select dept,name,salary, dense_rank() over(partition by null order by salary desc) as rank from salary
RD1KUO1801
HR1BEN1801
RD2RAY1801
RD1KEN1402
RD2YANG1303
RD1ANDY1204

5. 最後要提一個觀念就是 partition by 的欄位值與 order by 是無關的.
select dept,name,salary, rank() over(partition by dept order by salary desc) as rank from salary order by name
RD1ANDY1203
HR1BEN1801
RD1KEN1402
RD1KUO1801
RD2RAY1801
RD2YANG1302
文章標籤
全站熱搜
創作者介紹
創作者 py3939 的頭像
py3939

老爹寫程式

py3939 發表在 痞客邦 留言(0) 人氣(17,199)

  • 全站分類:
  • 個人分類:Oracle
▲top

個人資訊

py3939
暱稱:
py3939
分類:
職場甘苦
好友:
累積中
地區:

熱門文章

  • ()Oracle over partition by
  • ()[C# Note]List
  • ()SQL 從另一個表格更新資料
  • ()Oracle 帳號密碼管理
  • ()ThreadPool.QueueUserWorkItem 的初階使用
  • ()CREATE MATERIALIZED VIEW
  • ()Create/Alert Partition Table
  • ()[C#]自訂的 Class 繼承自 IComparable 以便具有 Sorting 功能
  • ()[C#] , Object.Equals 傻傻分不清楚
  • ()Oracle PIPE ROW 產生一個想要的虛擬 Table.

文章分類

  • .NET (0)
  • 碎碎念 (0)
  • P-Management (0)
  • Oracle (0)
  • 未分類文章 (1)

最新文章

    最新留言

    文章精選

    文章搜尋

    誰來我家

    參觀人氣

    • 本日人氣:0
    • 累積人氣:114,894
    py3939
    PIXNET Logo登入