Lição 25 de 30
WHERE ou HAVING?
Hoje no estúdio
Na semana antes da grande reunião do conselho, as perguntas ficam longas, com um filtro nas linhas e outro nos grupos. O último bilhete do Kou aparece embaixo do teclado: "a ordem importa. FROM, depois WHERE, depois GROUP BY, depois HAVING, depois SELECT, depois ORDER BY, depois LIMIT."
A ideia
O SQL lê a consulta numa ordem diferente da que você escreve: primeiro FROM e JOIN, depois WHERE, depois GROUP BY, depois HAVING, depois SELECT, depois ORDER BY e por fim LIMIT.
É por isso que o WHERE não enxerga um apelido criado no SELECT, e por que um filtro de linhas vai no WHERE enquanto um filtro sobre um total vai no HAVING. Quando uma consulta parecer difícil, leia nessa ordem.
Exemplo
SELECT species, COUNT(*) FROM characters WHERE voice_actor = 'Maya Lin' GROUP BY species HAVING COUNT(*) > 1
Sua vez
0 de 4 perguntas
Pergunta 1 de 4
Olhando só as séries finalizadas, quais gêneros têm mais de uma série? Mostre genre e a contagem.