- - PR -
CREATE VIEWの作成方法について
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2005-07-26 18:15
シュイ・タといいます。
現在、CREATE VIEWによる集計処理をしたく、 VIEWテーブルの設計を考えているのですが、 うまく行かず、悩んでおります。 ご教授をして頂きたく、投稿させて頂きました。 CREATE VIEWさせたいテーブルの構造 CREATE TABLE "kenqt" ( "enqtid" integer NOT NULL, "cid" integer NOT NULL, "largeq" smallint NOT NULL, "ansno" smallint NOT NULL, "enq1" smallint, "enq2" smallint, "enq3" smallint, Constraint "kenqt_pkey" Primary Key ("enqtid") ); enqtid | cid | largeq | ansno | enq1 | enq2 | enq3 --------+-----+--------+-------+------+------+------ 1 | 1 | 1 | 1 | 1 | 2 | 3 2 | 1 | 1 | 2 | 2 | 2 | 3 3 | 1 | 2 | 1 | 1 | 2 | 3 4 | 1 | 2 | 2 | 2 | 2 | 3 5 | 1 | 2 | 3 | 2 | 2 | 3 6 | 1 | 2 | 4 | 3 | 2 | 3 7 | 1 | 3 | 1 | 1 | 2 | 3 8 | 1 | 3 | 2 | 1 | 2 | 3 9 | 1 | 3 | 3 | 2 | 2 | 3 10 | 1 | 3 | 4 | 2 | 2 | 3 1 | 2 | 1 | 1 | 1 | 2 | 3 2 | 2 | 1 | 1 | 2 | 2 | 3 となっています。 これを cid | largeq | enq1合計(値=1)| enq1合計(値=2)| enq1合計(値=3)| 以下略 -----+--------+----------------+----------------+----------------+ 1 | 1 | 1 | 1 | 0 | 1 | 2 | 1 | 2 | 1 | 1 | 3 | 2 | 2 | 0 | 2 | 1 | 1 | 1 | 0 | になって欲しいのですがどうしたら良いでしょうか? PostgreSQLのリファレンス本などを読んで色々試しましたが、四苦八苦している状態です。 解る方がおりましたら、ご教授をよろしくお願い致します。 |
|
投稿日時: 2005-07-26 19:51
こんばんは。
PostgreSQLを使ったことはないのですが、 case文を用いて、下記のようなselect文ではできないでしょうか? select cid, largeq, sum( case when enq1=1 then 1 else 0 end ) as "enq1合計(値=1)", sum( case when enq1=2 then 1 else 0 end ) as "enq1合計(値=2)", sum( case when enq1=3 then 1 else 0 end ) as "enq1合計(値=3)" --略-- from kenqt group by cid,largeq |
1
