我的代码是
SELECT
COUNT(*) AS none
FROM
college_votes
WHERE
`bd` IN ('none', '-Select for Board of Director-')
AND `bd1` IN ('none', '-Select for Board of Director-')
AND `bd2` IN ('none', '-Select for Board of Director-')
AND `bd3` IN ('none', '-Select for Board of Director-')
我想在不同的列中计算相同的值
你可以统计id的数量
SELECT COUNT(id) AS none FROM college_votes ...
您可以将conditional aggregation
与SUM
一起应用于所有四列:
SELECT
SUM(CASE WHEN `bd` IN ('none', '-Select for Board of Director-') THEN 1 ELSE 0 END )
AS number_of_bd,
SUM(CASE WHEN `bd1` IN ('none', '-Select for Board of Director-') THEN 1 ELSE 0 END )
AS number_of_bd1,
SUM(CASE WHEN `bd2` IN ('none', '-Select for Board of Director-') THEN 1 ELSE 0 END )
AS number_of_bd2,
SUM(CASE WHEN `bd3` IN ('none', '-Select for Board of Director-') THEN 1 ELSE 0 END )
AS number_of_bd3
FROM college_votes;