strawquery EN
Todas as lições

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.

Projeto de fã não oficial. Os títulos pertencem aos seus criadores e detentores de direitos.