Estou aprendendo SQL, então peço desculpas se esta for uma pergunta muito básica. Não consigo descobrir como usar uma cláusula WHERE depois de GROUP BY um campo.
Por exemplo, como eu filtraria os resultados usando uma cláusula WHERE para ver apenas os países onde a contagem de pedidos é maior que 100?
Obrigado
Quando você deseja filtrar por um campo agregado após o resultado de um agrupamento (
GROUP BY
cláusula), existe uma palavra-chave chamadaHAVING
que você pode usar. AHAVING
cláusula é especificada após aGROUP BY
cláusula.Por exemplo:
A
WHERE
cláusula só pode ser usada em colunas antes de serem agregadas, e é por isso que você não pode usá-la neste caso. Seria possível, em uma etapa secundária, usar umaWHERE
cláusula se você agrupasse sua consulta em uma CTE ou subconsulta ou preparasse os resultados em uma tabela temporária. Mas essa etapa extra não é necessária aqui quandoHAVING
faz logicamente o que você está pedindo, em uma única etapa.A cláusula é
E vai pouco antes do
group by