WHERE é executada antes da agregação, enquanto HAVING é executada depois.
É possível referenciar na cláusula HAVING, por meio do alias, os resultados da agregação da cláusula SELECT. Como alternativa, a cláusula HAVING pode filtrar resultados de agregações adicionais que não são retornados nos resultados da consulta.
Exemplo
sales como esta:
Limitações
HAVING não pode ser usado se não houver agregação. Use WHERE em vez disso.