我在sqlite数据库中有一个表,如下所示。
id status ============= x 0 y 1 y 0 x 1 x 1 z 0
作为示例,我有3个不同的id状态(0/1),x在表中找到3次,status = 0 1次,status = 1 2次,y找到2次在表中,状态= 0表示1次,状态= 1表示1次。
所以,我想使用'select'来获得以下结果,有没有办法做这个工作?任何帮助,将不胜感激。感谢
id sum(status=0) sum(status=1) total(status) ======================================================== x 1 2 3 y 1 1 2 z 1 0 1
答案 0 :(得分:3)
我相信这应该有效:
SELECT id,
SUM(CASE WHEN status = 0 THEN 1 ELSE 0 END) AS SUM_STATUS_0,
SUM(CASE WHEN status = 1 THEN 1 ELSE 0 END) AS SUM_STATUS_1,
SUM(status) AS SUM_STATUS
FROM TABLE
GROUP BY id
答案 1 :(得分:0)
这也应该有效,因为count
不计算空值:
select id,
count(case when status = 0 then 1 end) Status0,
count(case when status = 1 then 1 end) Status1,
count(*) StatusAll
from t
group by id