相関サブクエリを使ってランキングを求める前提numの大きい者順にランキングを求める。 id | num ----+----- 1 | 100 2 | 200 3 | 150 4 | 50 5 | 100 SQL相関サブクエリを使う。 SELECT y.id, y.num, (SELECT COUNT(*) FROM t1 x WHERE y.num < x.num) + 1 AS 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 |
|