Funções de agregação computam um único valor a partir de um conjunto de linhas — COUNT, SUM, AVG, MIN, . Elas são essenciais para resumir dados (totais, médias, contagens), especialmente combinadas com .
Funções de agregação computam um único valor a partir de um conjunto de linhas — COUNT, SUM, AVG, MIN, . Elas são essenciais para resumir dados (totais, médias, contagens), especialmente combinadas com .
MAXGROUP BYSELECT
COUNT(*) AS total_rows, -- count all rows
COUNT(email) AS rows_with_email, -- count NON-NULL emails (ignores NULLs!)
SUM(amount) AS total_amount, -- sum of a column
AVG(price) AS average_price, -- average
MIN(price) AS lowest, -- minimum
MAX(price) AS highest -- maximum
FROM orders;
Cada função reduz muitas linhas a um valor. SUM/AVG funcionam em números; MIN/MAX em números, datas ou texto; COUNT em qualquer coisa.
COUNT(*) -- counts ALL rows (including those with NULLs)
COUNT(email) -- counts only rows where email is NOT NULL
COUNT(DISTINCT country) -- counts UNIQUE non-null values
COUNT(*) conta todas as linhas, mas COUNT(column) conta apenas linhas onde essa coluna não é NULL — uma distinção sutil mas importante. COUNT(DISTINCT col) conta valores únicos.
-- aggregate PER GROUP instead of the whole table
SELECT country, COUNT(*) AS users, AVG(age) AS avg_age
FROM users
GROUP BY country; -- one result row per country
-- → for each country: how many users and their average age
Sem GROUP BY, uma agregação resume o resultado inteiro em uma linha. Com GROUP BY, ela produz uma linha de resumo por grupo — o uso típico e poderoso.
-- ❌ ERROR — can't mix an aggregate with a non-grouped column
SELECT name, COUNT(*) FROM users; -- which name? ambiguous
-- ✅ either group by it, or only select aggregates
SELECT country, COUNT(*) FROM users GROUP BY country;
Funções de agregação são essenciais para resumir e analisar dados — computar totais, médias, contagens e extremos é uma necessidade constante em relatórios, análises, painéis de controle e lógica de aplicação, então compreendê-las é conhecimento SQL fundamental.
Conhecer as principais funções (COUNT, SUM, AVG, MIN, MAX) e como elas reduzem conjuntos de linhas a valores únicos é necessário para qualquer resumo de dados.
Um detalhe importante e comumente mal compreendido é a distinção entre COUNT(*) e COUNT(column) (COUNT(*) conta todas as linhas, COUNT(column) conta apenas valores não-NULL — que podem dar resultados diferentes e surpreendentes), junto com COUNT(DISTINCT) para valores únicos.
Mais poderosamente, agregações se combinam com GROUP BY para produzir resumos por grupo (contagens/médias por categoria) — a base de consultas analíticas.
Compreender a armadilha de que você não pode misturar agregações com colunas não agrupadas (um erro comum) também é importante.
Já que resumir dados é uma tarefa de banco de dados onipresente (cada relatório, painel de controle e consulta de análise usa agregações), e já que compreender as funções, as sutilezas do COUNT e especialmente sua combinação com GROUP BY é fundamental para análise de dados em SQL, dominar funções de agregação é conhecimento essencial, frequentemente aplicado, fundamental para trabalhar com dados — conectando consultas básicas e o poder analítico de resumo que torna SQL valioso para relatórios e insights.