ROW_NUMBER

行番号の取得を行います。

-- Oracle
ROW_NUMBER ()
    OVER ( [ PARTITION BY partition_expression [,partition_expression ...] ]
    ORDER BY order_expression [,order_expression ...] )

return : 行番号
partition_expression : パーティションを指定する式
order_expression : 順位を決定するための式

 

*
下記のテーブルがあるとき…

社員マスタ

社員番号 名前 所属部署コード 月給
1 しゃちょさん 100 1000000
2 部長さん 200 600000
3 主任さん 220 400000
4 Aさん 220 200000
5 Bさん 220 300000
6 Cさん 220 300000

 

*
社員マスタの給与の高い順に行番号を取得する場合、以下のように記述します。

SELECT ROW_NUMBER()OVER(ORDER BY 給与 DESC) AS "順位",
       社員番号, 名前, 所属部署コード, 給与
  FROM 社員マスタ
;

結果

順位 社員番号 名前 所属部署コード 月給
1 1 しゃちょさん 100 1000000
2 2 部長さん 200 600000
3 3 主任さん 220 400000
4 5 Bさん 220 300000
5 6 Cさん 220 300000
6 4 Aさん 220 200000

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です