相関サブクエリを使ってランキングを求める

前提

numの大きい者順にランキングを求める。

  id | num
 ----+-----
   1 | 100
   2 | 200
   3 | 150
   4 |  50

SQL

相関サブクエリを使う。

 SELECT y.id, y.num, (SELECT COUNT(*) FROM t1 x WHERE y.num < x.num) + 1AS rank FROM t1 y ORDER BY rank;

結果

  id | num | rank
 ----+-----+------
   2 | 200 |    1
   3 | 150 |    2
   1 | 100 |    3
   5 | 100 |    3
   4 |  50 |    5

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS