人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

SQLの質問です。
主キーはinteger, 項目1・2はbooleanという以下のようなテーブルがあったとします。

○テーブルA
主キー | 項目1 | 項目2
--------------------------
10000 | true | false
10001 | true | false
10002 | false | true

1回のSQLで次のような集計をすることは可能でしょうか?
→SQL
select sum(項目1), sum(項目2)
from テーブルA

→結果
sum(項目1) | sum(項目2)
-------------------------
2 | 1


論理値を集計することになりますから、このままだとエラーになります。環境はPostgreSQL8.1.xを想定しています。
※他の環境では動くかもしれませんが、
今回は考慮しない方向でお願いします。

●質問者: katsube
●カテゴリ:インターネット ウェブ制作
✍キーワード:SELECT SQL エラー 環境 考慮
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● samejima
●65ポイント ベストアンサー

http://www.postgresql.jp/document/pg815doc/html/functions-condit...

9.13.1. CASE

select
 sum(case when 項目1 then 1 else 0 end),
 sum(case when 項目2 then 1 else 0 end)
from テーブルA
◎質問者からの返答

なるほど、CASE文ですか。

思いつかなかったです(^^;

パフォーマンス的にはどうなんでしょう?


2 ● matsOS
●5ポイント

単純にレコードを数えるなら。

select count(*)from テーブルA where 項目1 IS TRUE;

◎質問者からの返答

設問の意図と異なります。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ