[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 メーリングリストの案内