在MYSQL中计算Null值

Koo*_*bin 5 mysql null

如何在进行交叉表查询时计算空值?

我有一个有三个列的表[id,name,answer]

我有以下记录:

ID  NAME   ANS
1   ABC    1
1   ABC    0
1   ABC    NULL
2   XYZ    1
2   XYZ    NULL
2   XYZ    NULL
2   XYZ    1
2   XYZ    0
1   ABC    0
Run Code Online (Sandbox Code Playgroud)

现在我想得到我的结果:

ID  Name   NULLCOUNT     TRUE COUNT   FALSE COUNT
1   ABC    1             1            2
2   XYZ    2             2            1
Run Code Online (Sandbox Code Playgroud)

我正在使用以下SQL语句:

select ID, NAME, 
    sum(case ANS when null then 1 else 0 end) as NULLCOUNT,
    sum(case ANS when 1 then 1 else 0 end) as TRUECOUNT,
    sum(case ANS when 0 then 1 else 0 end) as FALSECOUNT
from 
    TBL1
 Group By ID, Name
Run Code Online (Sandbox Code Playgroud)

得到我的结果:

ID  Name   NULLCOUNT     TRUE COUNT   FALSE COUNT
1   ABC    0             1            2
2   XYZ    0             2            1
Run Code Online (Sandbox Code Playgroud)

NULL Count正在出错.为什么以及如何解决这个问题?

dcp*_*dcp 7

我相信而不是这个:

 sum(case ANS when null then 1 else 0 end) as NULLCOUNT
Run Code Online (Sandbox Code Playgroud)

你应该用这个:

 sum(case when ANS is null then 1 else 0 end) as NULLCOUNT
Run Code Online (Sandbox Code Playgroud)