【PostgreSQL】Rank関数でデータに順番を付ける方法

Rank関数でデータに順番をつける

Rank関数の使い方は基本的に以下の通りです。

rank() over(order by カラム名)

昇順の場合はカラム名の後ろに何もつけなくて大丈夫ですが、降順で順番を付けたいときはカラム名の後に「desc」と付けます。

具体的なコード例

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

idnamelikeageaddressphone_numbercreated_atupdated_at
1田中由美子tennis20東京010-2222-33332021-10-09 05:11:052021-10-09 05:11:05
2鈴木浩game34千葉0120-222-44442021-10-09 05:11:052021-10-09 05:11:05
3佐藤康明baseball19神奈川011-3344-22222021-10-09 05:11:052021-10-09 05:11:05
4高橋洋子walking40東京010-223-44442021-10-09 05:11:052021-10-09 05:11:05
5田島翔太swimming16東京0120-20-99992021-10-09 05:11:052021-10-09 05:11:05

各データのageカラムに対して昇順で順番をつけてデータを取得します。

select name, rank() orver(order by age) from users;

実行結果は以下の通りです。

nameagerank
田島翔太161
佐藤康明192
田中由美子203
鈴木浩344
高橋洋子405
タイトルとURLをコピーしました