SQL - 重复计算一列

3
我有一张表,其中有一个名为“status”的列。可以将其设置为0或1。
请问我是否可以在单个查询中统计0和1的数量?
提前感谢您。
詹姆斯

3
两个现有的答案都很好——如果你需要纯计数,就使用Yuck的答案;如果你需要添加更多列或更多分组,则使用ean5533的答案。 - Damien_The_Unbeliever
2个回答

9

是的,只需按 status 的值进行分组:

SELECT status, COUNT(*)
FROM yourtable
GROUP BY status

那将给你精确的两行,因为该值只能是01,而COUNT(*)列将是表中每个status值出现的次数。

9
SELECT SUM(CASE WHEN status = 0 THEN 1 ELSE 0 END) AS 'number of zeroes',
       SUM(CASE WHEN status = 1 THEN 1 ELSE 0 END) AS 'number of ones'
FROM yourtable;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接