计算 MySQL 中 0 的数量
Counting the amount of 0's in MySQL
我想计算 table 中 zero/false 的数量,因为 en_participation
是一个 Boolean
变量。但是我查了一下,当我在 SELECT
语句中将 0
替换为 1
时,它工作正常,但是,当我将它替换为 0
时,它给了我相同的结果。
任何帮助将不胜感激
SELECT count(CASE WHEN en_participation THEN 0 END) FROM Enrolls
计算 0 的最简单方法是求和:
SELECT SUM(NOT en_participation) AS count_zeros,
SUM(en_participation) AS count_ones
FROM Enrolls
此处,表达式 NOT en_participation
将 0s 更改为 1s,将 1s 更改为 0s
你没有告诉它在不匹配的情况下该怎么做:
SELECT COUNT(CASE
WHEN not en_participation
THEN 0
ELSE NULL
END) AS TOTAL_COUNT
FROM Enrolls
零是一个可数的值。 NULL 不是。
编辑
想了一晚上后,我正在修改我的答案。没有什么问题,就是没有达到应有的程度。
题中的问题和我原来的答案是不清楚到底算了什么。我们正在计算 FALSE,是的 - 但在 en_participation
为 FALSE 的情况下,我们 return 0,虽然此 是 一个可数值,但很容易误解它.因此,我想出了以下办法:
SELECT COUNT(CASE en_participation
WHEN true THEN 1
WHEN false THEN NULL
END) AS TRUE_COUNT,
COUNT(CASE en_participation
WHEN true THEN NULL
WHEN false THEN 1
END) AS FALSE_COUNT
FROM Enrolls
See this db<>fiddle for the improved answer
问题和我原来的答案也是return0作为可数值。这是正确的,但乍一看可能会造成混淆。我更新的答案 returns 1 对于我认为更好的可数行。
(对于那些想知道“这家伙怎么有时间做这件事的人?”-我在家做膝关节置换手术,所以我很无聊而且很受伤,这是一个很好的消遣。:- )
我想计算 table 中 zero/false 的数量,因为 en_participation
是一个 Boolean
变量。但是我查了一下,当我在 SELECT
语句中将 0
替换为 1
时,它工作正常,但是,当我将它替换为 0
时,它给了我相同的结果。
任何帮助将不胜感激
SELECT count(CASE WHEN en_participation THEN 0 END) FROM Enrolls
计算 0 的最简单方法是求和:
SELECT SUM(NOT en_participation) AS count_zeros,
SUM(en_participation) AS count_ones
FROM Enrolls
此处,表达式 NOT en_participation
将 0s 更改为 1s,将 1s 更改为 0s
你没有告诉它在不匹配的情况下该怎么做:
SELECT COUNT(CASE
WHEN not en_participation
THEN 0
ELSE NULL
END) AS TOTAL_COUNT
FROM Enrolls
零是一个可数的值。 NULL 不是。
编辑
想了一晚上后,我正在修改我的答案。没有什么问题,就是没有达到应有的程度。
题中的问题和我原来的答案是不清楚到底算了什么。我们正在计算 FALSE,是的 - 但在 en_participation
为 FALSE 的情况下,我们 return 0,虽然此 是 一个可数值,但很容易误解它.因此,我想出了以下办法:
SELECT COUNT(CASE en_participation
WHEN true THEN 1
WHEN false THEN NULL
END) AS TRUE_COUNT,
COUNT(CASE en_participation
WHEN true THEN NULL
WHEN false THEN 1
END) AS FALSE_COUNT
FROM Enrolls
See this db<>fiddle for the improved answer
问题和我原来的答案也是return0作为可数值。这是正确的,但乍一看可能会造成混淆。我更新的答案 returns 1 对于我认为更好的可数行。
(对于那些想知道“这家伙怎么有时间做这件事的人?”-我在家做膝关节置换手术,所以我很无聊而且很受伤,这是一个很好的消遣。:- )