1
resposta

Dúvida having/group by

Boa noite! No fim deste vídeo, foi explicado de ter usado o HAVING ao invés do where pelo motivo de que não pode usar o where antes do group by e que o mais indicado para filtragem seria o Having, porém na aula 2, no exercício onde pede o filtro do sobrenome dos alunos, a resposta está utiilizando a estrutura where e inclusive, antes do group by. Tem alguma diferença entre os dois códigos que eu não tenha entendido, para que na hora deste vídeo, ao utilizar o where antes do group by ter ocasionado o erro do minuto 3:04? Ou alguma diferença onde influenciou o uso do group by neste exercício citado e a explicação de ter utilizado o having neste vídeo da aula 03? Agradeço!

1 resposta

Boa noite.

O uso do HAVING está relacionado ao filtro dos agrupamentos realizados (GROUP BY), enquanto o WHERE está associado ao conjunto de dados utilizados para o agrupamento. Exemplificando: Imagine o cenário onde você tenha que agrupar os pedidos por clientes e somente retornar aqueles que tiverem mais de um pedido realizado; Utilizando o GROUP BY você agruparia por cliente e no HAVING seria utilizado o COUNT(pedido) > 0 filtrando os clientes com mais de um pedido no agrupamento. Uma dica para recordar é que normalmente é utilizado funções de agregação no HAVING, enquanto na clausula WHERE são somente filtros individualizados.

Atenciosamente, Nicholas Góes

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software