Entendendo o uso da clausula HAVING no MySQL

Utilizada em conjunto com a clausula Group By para criar filtros de agrupamento.

Publicado em

No MySQL, a cláusula HAVING é usada em conjunto com a cláusula GROUP BY para filtrar os resultados de uma consulta que envolve funções de agregação, como COUNT, SUM, AVG, dentre outras. A cláusula HAVING é aplicada logo após o GROUP BY e permite que você especifique condições para restringir os grupos de resultados retornados.

Veja um exemplo para entender melhor o uso do HAVING. Suponha que você tenha uma tabela chamada orders que contém informações sobre pedidos, e você deseja encontrar os clientes que fizeram mais de um pedido:

SELECT customer_id, COUNT(*) as total
FROM orders
GROUP BY customer_id
HAVING total > 1;

Primeiramente perceba que a gente fez o uso do alias total para armazenar a quantidade de registros. Observe com detalhe as demais explicações abaixo.

  • SELECT customer_id, COUNT(*) as total_pedidos: Aqui, estamos contando o número de pedidos para cada cliente e selecionando o ID do cliente e o total de pedidos;
  • FROM orders: Especifica a tabela da qual estamos selecionando dados (orders neste caso);
  • GROUP BY customer_id: Agrupa os resultados pelo ID do cliente;
  • HAVING total_pedidos > 1: Filtra os resultados para incluir apenas aqueles em que o total de pedidos é maior que 1.

Portanto, a consulta acima retornará apenas os clientes que fizeram mais de um pedido. O HAVING é usado para aplicar condições às funções de agregação, neste exemplo, o COUNT(*).

Gunnar Correa
Gunnar Correa

Autodidata, Graduado em Desenvolvimento Web, Especialista em Tecnologias na Educação e Pós-graduando em Segurança da Informação. Começou seus estudos na área de programação quando era criança, e atualmente, está estudando desenvolvimento de jogos. Fundador da SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.

Todos os nossos cursos em promoção
Todos os nossos cursos em promoção

Webstories

Todos os nossos cursos em promoção

Todos os nossos cursos em promoção

Deixe um comentário
Aguarde...
Todos os nossos cursos em promoção