[pgsql-jp: 35756] Re: CREATE VIEWによる集計について
日本ユニシステム 堀 世志之
y.hori @ uni-net.co.jp
2005年 7月 27日 (水) 11:31:05 JST
よしボブ@三鷹市民様
> 今回頂いた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 メーリングリストの案内