ROW_NUMBER関数の使い方
row_number関数の使い方は基本的には以下のとおりです。
row_number() orver(order by カラム名)
カラム名の後ろに何もつけないと昇順になります。
降順で順位付けをしたい場合はカラム名の後ろに「desc」と付ければOKです。
具体的なコード
まず前提として以下のusersテーブルがあるとします。
id | name | like | age | address | created_at | updated_at |
1 | 田中由美子 | tennis | 20 | 東京 | 2021-10-09 05:11:05 | 2021-10-09 05:11:05 |
2 | 鈴木浩 | game | 34 | 千葉 | 2021-10-09 05:11:05 | 2021-10-09 05:11:05 |
3 | 佐藤康明 | baseball | 19 | 神奈川 | 2021-10-09 05:11:05 | 2021-10-09 05:11:05 |
4 | 高橋洋子 | walking | 40 | 東京 | 2021-10-09 05:11:05 | 2021-10-09 05:11:05 |
5 | 田島翔太 | swimming | 20 | 東京 | 2021-10-09 05:11:05 | 2021-10-09 05:11:05 |
ageカラムに対して降順で順番を付けてデータを取得したいと思います。
以下のコマンドを実行します。
select name, age, row_number() orver(order by age desc) from users
実行結果は以下の通りになります。
name | age | row_number |
高橋洋子 | 40 | 1 |
鈴木浩 | 34 | 2 |
田島翔太 | 20 | 3 |
田中由美子 | 20 | 4 |
佐藤康明 | 19 | 5 |
「田島翔太」と「田中由美子」のageカラムの値は同じく20ですが、row_number関数を使うと同じ順番は付かずユニークな順番が付与されます。