需要帮助数据库查询此方案

时间:2018-04-20 07:57:16

标签: mysql sql sqlite

我无法为以下表格内容派生SQL查询。

enter image description here

当我尝试下面的查询时,我得到了上述输出。有人可以帮我提供所需的查询。

select Name, count(Status) from mytable where Status='Open' group by mytable union
select Name, count(Status) from mytable where Status='Cleared' group by mytable

1 个答案:

答案 0 :(得分:2)

在选择列表中使用case表达式来执行条件聚合。

select Name,
       count(case when Status = 'Open' then 1 end) as opencnt,
       count(case when Status = 'Cleared' then 1 end) as clearedcnt
from mytable
where Status in ('Open', 'Cleared')
group by Name

COUNT()计算非空值。上述case表达式在未满足条件时返回null。