- 追加された行はこの色です。
- 削除された行はこの色です。
* 相関サブクエリを使ってランキングを求める [#e7a5749d]
** 前提 [#va69cef6]
numの大きい者順にランキングを求める。
id | num
----+-----
1 | 100
2 | 200
3 | 150
4 | 50
5 | 100
** SQL [#qe183850]
相関サブクエリを使う。
SELECT y.id, y.num, (SELECT COUNT(*) FROM t1 x WHERE y.num < x.num) + 1AS rank FROM t1 y ORDER BY rank;
SELECT y.id, y.num, (SELECT COUNT(*) FROM t1 x WHERE y.num < x.num) + 1 AS rank FROM t1 y ORDER BY rank;
** 結果 [#t014d277]
id | num | rank
----+-----+------
2 | 200 | 1
3 | 150 | 2
1 | 100 | 3
5 | 100 | 3
4 | 50 | 5