不能计算多个列

问题描述 投票:-2回答:2

我的代码是

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-')

我想在不同的列中计算相同的值

sql where countif
2个回答
0
投票

你可以统计id的数量

SELECT COUNT(id) AS none FROM college_votes ...

0
投票

您可以将conditional aggregationSUM一起应用于所有四列:

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;
© www.soinside.com 2019 - 2024. All rights reserved.