myCol ------ true true true false false null
在上表中,如果我做:
select count(*),count(myCol);
我得到6,5
我得到5,因为它不计数null条目。
如何计算真实值的数量(示例中为3)?
(这是一个简化,我实际上在count函数中使用了一个更复杂的表达式)
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>