一行中的多个where子句sql

ste*_*ris 4 sql count where

我想采取以下声明并将其融合到一个查询中.

SELECT COUNT(*) AS count1 WHERE Month='11' AND Flag = 1
SELECT COUNT(*) AS count2 WHERE Month='11' AND Flag = 2
SELECT COUNT(*) AS count1 WHERE Month='12' AND Flag = 1
    SELECT COUNT(*) AS count2 WHERE Month='12' AND Flag = 2
Run Code Online (Sandbox Code Playgroud)

我希望这显示为一个查询列count1和count2以及行11月和12月.

有这个语法吗?

Dam*_*ver 6

您可以一次性组合SUMCASE获得各种计数:

SELECT
    Month,
    SUM(CASE WHEN Flag=1 THEN 1 ELSE 0 END) as count1,
    SUM(CASE WHEN Flag=2 THEN 1 ELSE 0 END) as count2
from
    ...
WHERE Month in ('11','12')
GROUP BY
    Month /* Other columns? */
Run Code Online (Sandbox Code Playgroud)