Agregação e Agrupamento em SQL
Deslize para mostrar o menu
A agregação em SQL utiliza a cláusula GROUP BY para organizar dados brutos em linhas de resumo. Com funções como SUM(), AVG() e COUNT(), é possível transformar milhões de linhas em métricas de negócios acionáveis diretamente em uma célula SQL.
Para muitos, SQL é a linguagem mais natural para resumir dados. A sintaxe é altamente legível e segue um fluxo lógico: escolha suas categorias, defina os cálculos e determine os grupos. Neste capítulo, será utilizada a visualização temporária criada anteriormente para realizar as mesmas agregações feitas em Python, mas com a simplicidade do SQL.
A cláusula GROUP BY
Em SQL, toda coluna que não está sendo "resumida matematicamente" deve ser incluída na instrução GROUP BY ao final da consulta. Isso informa ao mecanismo SQL exatamente como particionar os dados.
SELECT cut, COUNT(*)
FROM diamond_view
GROUP BY cut
Utilizando Funções de Agregação Integradas
SQL oferece várias funções padrão para realizar cálculos em colunas numéricas:
- SUM(): soma todos os valores da coluna;
- AVG(): calcula a média/valor médio;
- MIN() / MAX(): encontra o menor ou maior valor;
- COUNT(): retorna o número de linhas.
%sql
SELECT
cut,
SUM(x),
AVG(y)
FROM diamond_view
GROUP BY cut
Uso de Alias para Relatórios Profissionais
Por padrão, o SQL pode rotular suas colunas de resultado como sum(Total_Profit). Para tornar sua saída adequada para um painel de negócios, utilize a palavra-chave AS para renomear essas colunas com descrições mais claras.
%sql
SELECT
cut,
SUM(x) AS Total_Length,
MAX(y) AS Highest_Diamond_Value
FROM diamond_view
GROUP BY cut
Filtrando Dados Agregados: A Cláusula HAVING
Um erro comum é tentar filtrar um resultado agregado usando WHERE. No SQL, WHERE filtra linhas individuais antes de serem agrupadas. Se você deseja filtrar os resultados após a soma (por exemplo, exibir apenas regiões com mais de $1.000.000 em lucro), é necessário utilizar a cláusula HAVING.
%sql
SELECT cut, SUM(x) AS Total_Length
FROM diamond_view
GROUP BY cut
HAVING Total_Length > 4000
Ordenando o Resumo
Para destacar seus insights, utilize sempre o ORDER BY. Isso permite classificar seus resultados, como exibir as regiões mais lucrativas no topo da tabela.
%sql
SELECT cut, SUM(x) AS Total_Length
FROM diamond_view
GROUP BY cut
ORDER BY Total_Length DESC
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo