[pgsql-jp: 30619] Re: order by でソートした順に番号を付けたい
Toshikazu Yoshikawa
toshi @ uncut00.com
2003年 7月 28日 (月) 14:38:03 JST
吉川です。
こちらのMLは久しぶりです。
> その時に、最初の A でソートした順位を表示したいため、とりだしたものに
> 1,2,3.. というように順番をつけて、それをまた B で order by でソートし直
> す、という方法で考えたのですが、上から順に 1,2,3.. と付ける方法が浮かび
> ませんでした。
> この方法でなくても良いのですが、どのようなSQLが考えられますでしょうか。
お使いのPostgreSQLのバージョンが定かではないので、
動くかどうかは分かりませんが、
手元の7.3.2では、以下のSQLでできました。
select * from data;
a | b
----+---
30 | a
20 | b
40 | c
10 | d
(4 rows)
select * from (select (select count(*)+1 from data as data1
where data1.a < data2.a) as 順位, a, b
from data as data2 order by a limit 3) as temp order by b;
順位 | a | b
------+----+---
3 | 30 | a
2 | 20 | b
1 | 10 | d
(3 rows)
--
Toshikazu Yoshikawa <toshi @ uncut00.com>
pgsql-jp メーリングリストの案内