【MySQL】row_number() over() を使ってみる

sql SQL

sql 

以下のようなテーブルがあるとします。

+--------+------------+------------+-----------+--------+------------+
| emp_no | birth_date | first_name | last_name | gender | hire_date  |
+--------+------------+------------+-----------+--------+------------+
|  10001 | 1953-09-02 | Georgi     | Facello   | M      | 1986-06-26 |
|  10002 | 1964-06-02 | Bezalel    | Simmel    | F      | 1985-11-21 |
|  10005 | 1955-01-21 | Kyoichi    | Maliniak  | M      | 1989-09-12 |
|  10006 | 1953-04-20 | Anneke     | Preusig   | F      | 1989-06-02 |
+--------+------------+------------+-----------+--------+------------+

以下のようなSQLを流すと、

select 
       first_name, 
       row_number() over(order by first_name asc) as rnt 
from 
       employees ;

こんな風に、まとめてくれました。

+------------+-----+
| first_name | rnt |
+------------+-----+
| Anneke     |   1 |
| Bezalel    |   2 |
| Georgi     |   3 |
| Kyoichi    |   4 |
+------------+-----+

ROW_NUMBER() OVER()は、SQL Serverで使用できるウィンドウ関数の1つで、行の番号を割り当てるために使用されます。

コメント

タイトルとURLをコピーしました