SQL; 仅计算每列中指定的值

3 sql count

在SQL中我有一个名为"answer"的列,值可以是1或2.我需要生成一个SQL查询,它计算每个月的1和2的数量.我有以下查询,但它不起作用:

SELECT MONTH(`date`), YEAR(`date`),COUNT(`answer`=1) as yes,
COUNT(`answer`=2) as nope,` COUNT(*) as total

FROM results

GROUP BY YEAR(`date`), MONTH(`date`)
Run Code Online (Sandbox Code Playgroud)

Roe*_*ler 6

我会按年,月,以及答案本身进行分组.这将导致每月两行:一行计算答案1的外观,另一行计算答案2(它对于其他答案值也是通用的)

SELECT MONTH(`date`), YEAR(`date`), answer, COUNT(*)
FROM results
GROUP BY YEAR(`date`), MONTH(`date`), answer
Run Code Online (Sandbox Code Playgroud)


And*_*mar 5

尝试SUM-CASE技巧:

SELECT 
    MONTH(`date`), 
    YEAR(`date`),
    SUM(case when `answer` = 1 then 1 else 0 end) as yes,
    SUM(case when `answer` = 2 then 1 else 0 end) as nope,
    COUNT(*) as total
FROM results
GROUP BY YEAR(`date`), MONTH(`date`)
Run Code Online (Sandbox Code Playgroud)