1. ホーム
  2. sql

[解決済み] postgresql - sql - `true` 値の数

2022-07-24 11:07:33

質問

myCol
------
 true
 true
 true
 false
 false
 null

上の表で、もし私が:

select count(*), count(myCol);

私は 6, 5

私は 5 というように、NULLのエントリをカウントしないためです。

真の値の数(例では3)もカウントするにはどうすればよいですか?

(これは単純化したもので、実際にはもっと複雑な式をcount関数内で使っています)

要約を編集:クエリに単純なcount(*)も含めたいので、where句は使えません。

どのように解決するのですか?

SELECT COALESCE(sum(CASE WHEN myCol THEN 1 ELSE 0 END),0) FROM <table name>

とか、自分で調べたように

SELECT count(CASE WHEN myCol THEN 1 END) FROM <table name>