[pgsql-jp: 34495] Re: JDBCとavg_ _関数
koyama
mlac @ hintmark.com
2004年 12月 15日 (水) 21:08:17 JST
k7-koyama です。
平野 さん ご返答ありがとうございます。
> との事で、勉強がてら試して見ました。
> (そのままではSQLが通らなかった ので少し編集しました。)
すいません。 (^^;
>
> 接続は、WindowsクライアントからADO-ODBC(7.05.00.02)です。
> ゴミですが、参考までに・・・
>
ありがとうございました。
>
> create table a (
> a_key_col integer not null primary key,
> str_col varchar(50) not null
> )
>
> 実行しました (50ms)
>
>
> create table b (
> b_key_col integer not null primary key,
> a_key_col integer not null,
> b_key_col_2 integer not null,
> b_num integer not null
> )
>
> 実行しました (60ms)
>
>
> CREATE VIEW test as
> (SELECT
> aaa.*
> FROM
> (SELECT
> b_key_col_2,
> a_key_col,
> sum(b_num) AS b_num1,
> avg(b_num) AS b_num2
> FROM b
> GROUP BY b_key_col_2, a_key_col
> ) AS aaa
> LEFT OUTER JOIN b ON aaa.a_key_col=b.a_key_col)
>
> 実行しました (10ms)
ここの view で、 table a からの str_col のくっつけ
データがないのが、異なっている点ですね。
先ほど、投稿したのですが、
avg(b_num) AS b_num2
の所を、numeric ではなく、real に桁落ちさせる事で、
すごく早くなりました。
今回のデータは、この精度で十分なので、okです。
jdbc だと 64bit の double で計算するので、遅くなるのでしょうか??
いろいろありがとうございました。
pgsql-jp メーリングリストの案内