[pgsql-jp: 35708] Re: たくさんの表を連結するときの速い SQL 文を教えてください

keios bok @ bbsbrain.ne.jp
2005年 7月 8日 (金) 11:05:50 JST


このメールは
  "鈴木孝征(Suzuki Takamasa)" <takamasa @ thaliana.myhome.cx>
さんのメールに対する返信です。

ども井上です。

> select t1.p, t1.v, t2.v from t1, t2 where t1.p=t2.p and t2.v / t1.v > 2
> これを下のように一つの表(t)にまとめた場合、演算結果に基づくデータの抽出
> にはどういったSQL文を組んだらいいのでしょうか。

いろいろ方法があると思うのですが、こんなのでどうでしょうか?
とりあえず何をしたいのかがよくわからないなかで、
仮に動くのを書いたのであなたがしたいことを実現する
最も適した方法とはかぎりませんのでご注意を…

#注 テーブル名とカラム名が一緒で見にくそうだったので
#   テーブル名を仮にtestにしています。

SELECT
    t1.p,
    t1.v,
    t2.v
FROM
    (select p,v from test where t='t1') as t1,
    (select p,v from test where t='t2') as t2
WHERE
    t1.p=t2.p AND
    t2.v / t1.v > 2

あと tとpの値についてですが、そのためのカラムに入れているのですから
t1,t2とかp1,p2の記述法でなく数字のみを入れるのはどうでしょうか?

t | p | v
------------
1 | 1 | 1
1 | 2 | 2
1 | 3 | 3
2 | 1 | 6
2 | 2 | 5
2 | 3 | 4


By Yoshihisa Inoue



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