Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

2
respostas

[Dúvida] where having

não encontrei uma explicação pertinente no exemplo citado, na página "Para saber mais: diferenças entre WHERE e HAVING em SQL". Tentei utilizar a IA e a explicação piorou 10 X. Não ficou claro exemplos, analogias sendo que quero tentar entender melhor e obter mais clareza.

2 respostas

Olá, Marcos! Tudo bem?

Ótima pergunta, vamos te ajudar por aqui.

Entender a diferença entre WHERE e HAVING pode ser um pouco confuso no início, mas vou tentar explicar de uma forma mais clara com exemplos práticos.

WHERE: Imagine que você está em uma loja de roupas e quer ver apenas as camisetas de tamanho grande. O WHERE seria como um filtro que você aplica antes de começar a organizar as camisetas por cor ou por preço. Ou seja, ele filtra os dados antes de qualquer agrupamento.

Exemplo prático:

SELECT nome, idade
FROM pessoas
WHERE idade >= 18;

Aqui, estamos filtrando todas as pessoas que têm 18 anos ou mais antes de fazer qualquer outra coisa com esses dados.

HAVING: Agora, imagine que você já organizou todas as camisetas por cor e quer saber quais cores têm mais de 10 camisetas. O HAVING seria como um filtro que você aplica depois de já ter agrupado as camisetas por cor. Ele é usado principalmente quando você trabalha com funções de agregação.

Exemplo prático:

SELECT cidade, COUNT(*)
FROM pessoas
GROUP BY cidade
HAVING COUNT(*) > 5;

Neste caso, primeiro agrupamos as pessoas por cidade e depois filtramos para mostrar apenas as cidades que têm mais de 5 pessoas.

Resumindo, use WHERE para filtrar dados antes do agrupamento e HAVING para filtrar após o agrupamento. Espero que esses exemplos ajudem a tornar as coisas mais claras para você!

Espero ter ajudado e fico à disposição se precisar.

Abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Daniel,
seu exemplo é igual da IA, ou feito por IA.

primeiro vc cita "loja de camisetas" mas seu exemplo, nada tem a ver ( nome, idade, pessoas, > 18 );

segundo vc cidades, o que tem ver ?? nada a ver com exemplo de roupas,

Portanto não tem nenhuma lógica