Em sistemas relacionais, a capacidade de extrair dados brutos é apenas o primeiro passo. O verdadeiro valor estratégico de um banco de dados surge quando conseguimos transformar milhões de registros transacionais em informações resumidas, métricas consolidadas e indicadores gerenciais para tomada de decisão.
Neste artigo, detalharemos o funcionamento das funções de agregação, a importância do agrupamento via GROUP BY e a aplicação correta da cláusula HAVING para filtragem de grupos.
As funções de agregação operam sobre um conjunto de linhas retornadas por uma consulta e retornam um único valor resumido consolidado. As principais funções suportadas por praticamente todos os SGBDs relacionais do mercado são:
SELECT COUNT(order_id) AS total_pedidos, SUM(total_amount) AS faturamento_bruto, AVG(total_amount) AS ticket_medio, MAX(total_amount) AS maior_pedido FROM orders WHERE order_date >= ADD_MONTHS(SYSDATE, -1);
Quando precisamos calcular métricas segmentadas por categorias específicas (como faturamento por mês, quantidade de clientes por cidade ou média salarial por departamento), utilizamos a cláusula GROUP BY.
Uma regra fundamental do SQL padrão é que qualquer coluna selecionada na consulta que não esteja envolvida em uma função de agregação deve obrigatoriamente constar na cláusula GROUP BY.
SELECT c.category_name, COUNT(p.product_id) AS qtd_produtos, AVG(p.unit_price) AS preco_medio FROM products p JOIN categories c ON p.category_id = c.id GROUP BY c.category_name ORDER BY qtd_produtos DESC;
Um dos erros mais comuns cometidos por programadores iniciantes e intermediários em SQL é a confusão sobre quando utilizar o filtro WHERE e quando utilizar o filtro HAVING.
-- Queremos apenas departamentos com faturamento total superior a 100 mil em vendas ativas SELECT department_id, SUM(salary) as folha_pagamento FROM employees WHERE status = 'ACTIVE' -- Filtra linhas antes de agrupar GROUP BY department_id HAVING SUM(salary) > 100000; -- Filtra os grupos após a agregação
Dominar o fluxo correto de execução de consultas relacionais — combinando junções eficientes, funções de agregação, agrupamentos limpos e filtros precisos com HAVING — eleva drasticamente a qualidade analítica dos seus relatórios e consultas corporativas.
', '2026-06-11 09:40:00' );