Несколько ГДЕ в SELECT - PullRequest
0 голосов
/ 24 марта 2020

Мне нужно создать два столбца, «Andamento» и «Concluido», и у каждого из них будет ГДЕ, который извлекает из столбца «Status» параметры: «Concluído» и «Em Progresso»

SELECT 
    date_format(Solicitacao, '%m/%Y') AS Mes, 
    COUNT(Status) AS Andamento WHERE Status = 'Em Andamento', 
    COUNT(Status) AS Concluido WHERE Status = 'Concluído' 
FROM demandas_portal 
GROUP BY Mes, Status

Вы должны вернуть это мне здесь

enter image description here

1 Ответ

0 голосов
/ 24 марта 2020

Вы, похоже, хотите условное агрегирование.

Некоторые базы данных поддерживают стандартный синтаксис filter, который соответствует духу вашей попытки:

select 
    date_format(solicitacao, '%m/%Y') as Mes, 
    count(*) filter(where status = 'Em Andamento') as Andamento,
    count(*) filter(where status = 'Em Concluído') as Concluido
from demandas_portal 
where status in ('Em Andamento', 'Em Concluído')    -- if needed
group by Mes

Но MySQL, что Вы можете использовать, не так. Вместо этого вы можете сделать:

select 
    date_format(solicitacao, '%m/%Y') as Mes, 
    sum(status = 'Em Andamento') as Andamento,
    sum(status = 'Em Concluído') as Concluido
from demandas_portal 
where status in ('Em Andamento', 'Em Concluído')    -- if needed
group by Mes
...