[pgsql-jp: 36887] 項目毎に件数指定をしたい

西村 篤史 a2c @ lets-heart.co.jp
2006年 3月 17日 (金) 18:36:56 JST


西村@和歌山市です。
いつも勉強させていただいます。

Select文にて、offset,limit を使った件数指定ですが、
指定のカラムにある値ごとに上位2位の表示をしたいと思っております。

例えばテーブル内のカラムが「 ID ,f1 ,f2 ,f3 ,f4」となっており、
レコードは下記の通り入っているとします。

 001,400 ,200 ,300 ,400
 001,500 ,200 ,300 ,400
 001,600 ,200 ,300 ,400
 002,100 ,200 ,300 ,400
 002,200 ,200 ,300 ,400
 002,300 ,200 ,300 ,400

表示したい形は、こんな感じです。
 001,600 ,200 ,300 ,400
 001,500 ,200 ,300 ,400
 002,300 ,200 ,300 ,400
 002,200 ,200 ,300 ,400

つまり、左端のカラム「ID」ごとにカラム「f1」の値が大きい順に
上位2位までを表示したいのですが、Select文ではどう書けば良いので
しょうか?
普通にOffset,limit を使うと表示する全体の件数から上位何位までと
なりますが、「ID」毎にselect文を実行する事になるのでしょうか。

すみませんが、ご教授の程、宜しくお願いいたします。



pgsql-jp メーリングリストの案内