[pgsql-jp: 35757] Re: CREATE VIEWによる集計について

水沼寛喜 mizunuma @ m-design.com
2005年 7月 27日 (水) 13:17:49 JST


よしボブ@三鷹市民様

水沼です。

ご教授頂きまして、ありがとうございます。
さっそく、テスト環境にて実行してみたいと思います。
結果が分かり次第、ご報告させて頂きます。

> -----Original Message-----
> From: pgsql-jp-bounces @ ml.postgresql.jp
> [mailto:pgsql-jp-bounces @ ml.postgresql.jp] On Behalf Of 日本ユニシステム 
堀 世志之
> Sent: Wednesday, July 27, 2005 11:31 AM
> To: PostgreSQL Japanese Mailing List
> Subject: [pgsql-jp: 35756] Re:CREATE VIEWによる集計について
>
>
> よしボブ@三鷹市民様
>
> > 今回頂いたSQL(修正版)と結果が
> > select cid, largeq, sum(case enq1 when 1 then 1 else 0 end
> ) as enq_1,
> > sum(case enq1 when 2 then 1 else 0 end )  from kenqt group by cid,
> > largeq, enq1;  cid | largeq | enq_1 | sum
> > ---+-----+-----+-----
> >   57 |      1 |       3 |   0
> >   57 |      1 |       0 |   4
> >   57 |      1 |       0 |   0
> >   57 |      1 |       0 |   0
> >   57 |      2 |     13 |   0
> >   57 |      3 |     13 |   0
> >
> > でした。
> すみません、SQL文がおかしいですね^^
>
> >  cid | largeq | sum(値1) | sum(値2) | sum(値3) | sum(値4) |
> > ---+-----+---------+--------+--------+--------+
> >   57 |      1 |              3 |            4 |          2
> |           4 |
> >   57 |      2 |            13 |            0 |          0 |
>           0 |
> >   57 |      3 |            13 |            0 |          0 |
>           0 |
> >
> > にしたいのですが、無理なのでしょうか。
>
> でしたら
> select
>  cid
> ,largeq
> ,sum(case enq1 when 1 then 1 else 0 end ) as enq1合計(値=1)
> ,sum(case enq1 when 2 then 1 else 0 end ) as enq1合計(値=2)
> ,sum(case enq1 when 3 then 1 else 0 end ) as enq1合計(値=3)
> ,sum(case enq1 when 4 then 1 else 0 end ) as enq1合計(値=4)
>   from kenqt
> group by cid, largeq;
>
> でOKだと思います。(テーブルとかを実際作成してSQL文を書いてないので…)
>
> 私も、初心者なので、このsql文は強引な方法です。
> もっとスマートな方法を勉強してみてください。
> もっとスマートな方法がわかったら教えてください^^;(ぉ
>





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