|
スポンサード リンク
グループ単位に、検索レコードに順番を付けるには、ROW_NUMBER関数を使用する
分析関数のROW_NUMBERは、ウィンドウ(window)を操作して、検索レコードに順番を付けます。
ROW_NUMBER() |
検索レコードに順番を付与して返されます。
|
OVER(
[ PRTITION BY 項目1,
[項目2,・・] ]
ORDER BY 項目1,
[項目2,・・] )
|
LEAD関数と一緒に使用します
PRTITION BY句には、グループ化対象項目を指定する
ORDERY BY句には、ソート対象の項目を指定する |
サンプル表「emp01」データ
|
SQL> select * from emp01;
EMP_ID DEPT_ID EMP_NAME YEARS SALARY
----- ----- ---------- ---------- ----------
E01 D01 なまえ1 3 150
E02 D02 なまえ2 7 200
E03 D03 なまえ3 7 300
E04 D02 なまえ4 7 400
E05 D03 なまえ5 3 500
E06 D02 なまえ6 3 600 |
例1) 列「emp_id」を昇順でソートしたレコードに順番を付与します。
|
SQL> select
2 emp_id,
3 row_number()
4 over( order by emp_id ) as row_number
5 from emp01;
EMP_ID ROW_NUMBER
----- ----------
E01 1
E02 2
E03 3
E04 4
E05 5
E06 6
|
例2) 列「emp_id」を昇順でソートしたレコードに、「dept_id」別に順番を付与します。
|
SQL> select
2 emp_id, dept_id,
3 row_number()
4 over( partition by dept_id order by emp_id ) as row_number
5 from emp01;
EMP_ID DEPT_ID ROW_NUMBER
----- ----- ----------
E01 D01 1
E02 D02 1
E04 D02 2
E06 D02 3
E03 D03 1
E05 D03 2 |
スポンサード リンク
|