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

前提

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

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2011-09-01 (木) 19:53:32