bool_or と bool_and があるSQL

postgreSQLだけっぽいんですが、boolに関する便利な集約関数がありました。

超簡単説明:
bool_or : 内容が1つ以上trueならtrue
bool_and : 内容が全てtrueならtrue

はい、簡単ですね。

select bool_or(dat=1), bool_and(dat=1) from
(select 1 as dat union select 2 as dat) d_table

とやると、
bool_or はtrueが返り、
bool_and は2があるからfalseが返ります。

ハマると結構便利。

参考:
https://www.postgresql.jp/document/8.0/html/functions-aggregate.html