[pgsql-jp: 30615] order by でソートした順に番号を付けたい
SATOH Kiyoshi
satoh0 @ hakuba.jp
2003年 7月 28日 (月) 12:50:25 JST
佐藤です。
A という項目で order by でソートして limit で上位だけ取り出し、それを
B という他の項目でまたソートし直して、Aでソートした順位も含めて表示たい
と考えています。
例:
AとB、2カラムのテーブル。
A | B
---+--
30 | a
20 | b
40 | c
10 | d
カラムAで order by でソートし limit 3 で切り、その順位も出す。
順位 | A | B
-----+----+--
1 | 10 | d
2 | 20 | b
3 | 30 | a
上記の結果をさらに、カラムBでソート。
順位 | A | B
-----+----+--
3 | 30 | a
2 | 20 | b
1 | 10 | d
この結果を表示したいというものです。
その時に、最初の A でソートした順位を表示したいため、とりだしたものに
1,2,3.. というように順番をつけて、それをまた B で order by でソートし直
す、という方法で考えたのですが、上から順に 1,2,3.. と付ける方法が浮かび
ませんでした。
この方法でなくても良いのですが、どのようなSQLが考えられますでしょうか。
PHPでコーディングしているため、一度PHP側で読み込んでからソートするもの
を書いたのですが、SQLだけで可能ではないかと思った次第です。
--
佐藤 潔 (SATOH Kiyoshi) <satoh @ hakuba.jp> <csml @ tcp-ip.or.jp>
pgsql-jp メーリングリストの案内