我有一个值为0或1的列。如何计算零的数量?
SELECT A.id
FROM table1 A
GROUP BY A.id
HAVING SUM(A.zeroorone) >=
ALL (SELECT SUM(AA.zeroorone)
FROM table1 AA
GROUP BY AA.id)
我知道这会计算一些。我似乎无法得到它
非常感谢任何帮助
答案 0 :(得分:4)
CASE声明可以很好地完成:
SELECT SUM(CASE WHEN zeroorone = 0
THEN 1
ELSE 0 END) AS TOTAL_ZEROS
FROM table1
答案 1 :(得分:4)
使用计数......
SELECT COUNT(*) FROM table1
WHERE zeroone=0
答案 2 :(得分:1)
如果您只想在表格中计算零,请使用:
SELECT COUNT(1) AS COUNT_OF_ZEROES
FROM table1
WHERE zeroone = 0
如果您想要每个ID计数,请使用此。
SELECT id, COUNT(1) AS COUNT_OF_ZEROES
FROM table1
WHERE zeroone = 0
GROUP BY id
答案 3 :(得分:0)
你确定吗?在我看来,它返回我知道这会计算一些
id
s,其中的数量大于或等于其零的数量。
如果您对查询符合您的要求感到满意,但想要扭转效果 - 例如返回id
,其零的计数大于或等于其中的计数 - 然后只需更改比较运算符:
SELECT A.id
FROM table1 A
GROUP BY A.id
HAVING SUM(A.zeroorone) <= -- changed from >=
ALL (SELECT SUM(AA.zeroorone)
FROM table1 AA
GROUP BY AA.id)