我有一个带有多个表联接的mySQL查询。在一个联接中,我试图将master_id为NULL的相关记录计数。
总共有1146条相关记录,no_master返回1146,而它应该返回0。我试过以下两项,都返回1146 ...那怎么可能?
COUNT(CASE WHEN ac.master_id IS NULL THEN 1 ELSE 0 END) AS 'no_master'
COUNT(CASE WHEN ac.master_id IS NULL THEN 0 ELSE 1 END) AS 'no_master'
答案 0 :(得分:0)
您可以使用SUM
:
SUM(CASE WHEN ac.master_id IS NULL THEN 1 ELSE 0 END) AS 'no_master'
<=>
SUM(ac.master_id IS NULL) AS 'no_master'
COUNT
不能区分0和1。
如果您想要COUNT
,则可以使用:
COUNT(ac.master_id)
-- by default COUNT omit `NULL` values