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

西村 篤史 a2c @ lets-heart.co.jp
2006年 3月 18日 (土) 14:38:05 JST


西村@和歌山市です。

>> つまり、左端のカラム「ID」ごとにカラム「f1」の値が大きい順に
>> 上位2位までを表示したいのですが、Select文ではどう書けば良いので
>> しょうか?

odagiri atsushi wrote:
> select *
> from ex1 e
> where seq in (select seq from ex1 f where f.id = e.id order by
> f1 limit 2)
> order by e.id , e.f1 desc

相関クエリというのを知りました。
レコード数を増やしてやってみましたら、欲しい形の表を得られる事が
できました。

>相関クエリなので、パフォーマンスは保障できませんが
50万レコードある本番用(といってもまだテスト)のテーブルを使い、
ビューを作ってから相関クエリを実行させたんですが、マシンスペックの
低さも相まって、2時間経っても答えが返ってきませんでした(w

「各部門毎に売上金額の上位 n位の商品を降順で出力」といった処理に
つかうには、スペックアップや夜間バッチ等で作っておく表などの
チューニングも必要みたいですね。

from table1 t1 ( from table1 as t1)という文法も知りました。

rish さん、小田切さん、中司さん、ありがとうございました。



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