📘 Semana 4 – Funções Agregadas: COUNT, SUM, AVG, MIN, MAX

🔢 Tópico 1 - O que são funções agregadas?

As funções agregadas em SQL servem para resumir informações numéricas de um banco de dados. Em vez de mostrar cada linha individual, elas realizam cálculos como soma, média ou contagem com base em várias linhas de uma só vez.

Essas funções são muito úteis em análises do dia a dia. Por exemplo, ao invés de ver todos os boletins de uma turma, podemos saber qual foi a média geral, ou quantos estudantes estão matriculados com uma contagem.

Principais funções:

  • COUNT() – Conta o número total de registros (linhas). Ex: Quantos alunos há em uma turma?
  • SUM() – Soma os valores de uma coluna numérica. Ex: Qual o total arrecadado em uma rifa?
  • AVG() – Calcula a média dos valores. Ex: Qual a média de idade dos alunos?
  • MIN() – Encontra o menor valor. Ex: Qual a menor nota de uma avaliação?
  • MAX() – Encontra o maior valor. Ex: Qual o maior número de curtidas em uma postagem?

Essas funções são frequentemente usadas com SELECT para responder perguntas como:

  • Quantos produtos foram vendidos neste mês?
  • Qual foi o valor total das vendas?
  • Qual aluno teve a menor média?
  • Quantos usuários estão ativos no sistema?

Elas são muito aplicadas em áreas como:

  • 📊 Relatórios escolares (média de notas, total de faltas por aluno)
  • 🛍️ Comércio e vendas (soma de valores vendidos, produtos mais vendidos)
  • 📱 Aplicativos e redes sociais (número de seguidores, curtidas, engajamento médio)
  • 📦 Controle de estoque (menor quantidade em estoque, valor total em produtos)

Exemplos práticos com a tabela alunos:

-- Quantos alunos estão cadastrados?
SELECT COUNT(*) AS total_alunos FROM alunos;

-- Qual a idade média dos alunos?
SELECT AVG(idade) AS media_idade FROM alunos;

-- Qual a menor idade registrada?
SELECT MIN(idade) AS menor_idade FROM alunos;

-- Qual a maior idade registrada?
SELECT MAX(idade) AS maior_idade FROM alunos;

Dica: Essas funções não precisam ser usadas apenas em tabelas grandes. Mesmo em pequenas turmas ou grupos de projetos, você já pode praticar e aplicar!

📊 Tópico 2 - Exemplos práticos com funções agregadas

Agora que você conhece as funções agregadas, vamos ver exemplos reais de como elas são usadas para responder perguntas que aparecem no dia a dia em escolas, comércios, redes sociais e outros sistemas.

🎓 Cenário 1: Escola – Tabela alunos
-- Quantos alunos estão cadastrados?
SELECT COUNT(*) AS total_alunos FROM alunos;

-- Qual a média de idade da turma?
SELECT AVG(idade) AS media_idade FROM alunos;

-- Qual a menor e maior idade?
SELECT MIN(idade) AS idade_minima, MAX(idade) AS idade_maxima FROM alunos;

Aplicação: A coordenação pode usar esses dados para definir turmas, planejar atividades por faixa etária ou elaborar relatórios escolares.

🛒 Cenário 2: Loja – Tabela vendas
-- Quantas vendas foram feitas este mês?
SELECT COUNT(*) AS total_vendas FROM vendas
WHERE data >= '2025-07-01';

-- Qual foi o valor total arrecadado?
SELECT SUM(valor) AS total_arrecadado FROM vendas;

-- Qual foi o valor médio de cada venda?
SELECT AVG(valor) AS media_venda FROM vendas;

Aplicação: Ideal para analisar o desempenho financeiro de uma loja ou cantina escolar, ajudando na tomada de decisão sobre estoques, promoções e metas.

📱 Cenário 3: Rede Social – Tabela postagens
-- Quantas curtidas foram dadas no total?
SELECT SUM(curtidas) AS total_curtidas FROM postagens;

-- Qual foi o post com mais curtidas?
SELECT MAX(curtidas) AS maior_curtida FROM postagens;

Aplicação: Útil para influenciadores, criadores de conteúdo ou administradores de páginas que desejam entender o engajamento do público.

💡 Observação:

As funções agregadas podem ser combinadas com WHERE para filtrar os dados e com GROUP BY para separar os resultados por categorias, como veremos nos próximos tópicos.

🧪 Tópico 3 - Exercícios Práticos

A seguir, você encontrará exercícios que simulam situações reais usando funções agregadas. Eles ajudarão a fixar o conteúdo e a praticar consultas SQL voltadas para análise de dados.

📁 Tabela: alunos

Atributos: id, nome, idade, cidade, curso

  • 1️⃣ Quantos alunos estão cadastrados no banco de dados?
  • 2️⃣ Qual a média de idade dos alunos do curso de "Informática"?
  • 3️⃣ Qual a maior idade entre os alunos do curso de "Logística"?
  • 4️⃣ Qual a menor idade entre os alunos que moram em "Garanhuns"?
📁 Tabela: compras

Atributos: id, aluno_id, valor_compra, data

  • 5️⃣ Qual o valor total gasto em compras?
  • 6️⃣ Quantas compras foram feitas no mês de julho de 2025?
  • 7️⃣ Qual o valor médio das compras realizadas?
📁 Tabela: notas

Atributos: id, aluno_id, disciplina, nota

  • 8️⃣ Qual a média das notas na disciplina "Matemática"?
  • 9️⃣ Qual a maior nota registrada na disciplina "Português"?
  • 🔟 Quantos registros de notas existem na tabela?

Experimente combinar as funções com WHERE para filtrar por curso, cidade ou período.
Esses exercícios são ótimos para fixar o uso de COUNT(), SUM(), AVG(), MIN() e MAX().

Dica: você pode usar AS para renomear o resultado:

SELECT COUNT(*) AS total_alunos FROM alunos;
🚀 Tópico 4 - Desafio Final com Banco de Dados

Imagine que você foi contratado para ajudar na geração de relatórios da secretaria da escola. Usando os dados disponíveis no banco de dados, você deverá responder às seguintes perguntas usando funções agregadas.

🎓 Cenário: Análise dos dados da escola

Tabelas envolvidas: alunos, notas, compras

  1. Quantos alunos estão matriculados em cada curso?
  2. Qual a média de idade dos alunos que moram em "Caetés"?
  3. Qual o total gasto em compras pelos alunos do curso de "Informática"?
  4. Qual a maior e a menor nota registrada na disciplina "Lógica de Programação"?
  5. Quantas notas foram lançadas por disciplina?

Para isso, você pode utilizar comandos SQL com funções como COUNT(), AVG(), SUM(), MIN(), MAX() e, se necessário, aplique WHERE para filtrar os dados e GROUP BY para agrupá-los por categorias.

🧠 Entendendo o GROUP BY

O GROUP BY é usado quando queremos aplicar uma função agregada separadamente para cada grupo de um determinado campo. Por exemplo, calcular a quantidade de alunos por curso, ou a média de notas por disciplina.

Sem o GROUP BY, você só consegue um resultado geral. Com ele, você agrupa os dados em categorias.

Exemplo simples:

-- Número de alunos por curso
SELECT curso, COUNT(*) AS total_alunos
FROM alunos
GROUP BY curso;

Neste exemplo, o SQL irá contar quantos alunos existem em cada curso, ou seja, ele vai agrupar os registros por curso antes de aplicar o COUNT(*).

Mais exemplos com GROUP BY:

-- Média de nota por disciplina
SELECT disciplina, AVG(nota) AS media_nota
FROM notas
GROUP BY disciplina;

-- Total gasto por aluno
SELECT aluno_id, SUM(valor_compra) AS total_gasto
FROM compras
GROUP BY aluno_id;

Isso permite gerar relatórios detalhados como: "qual disciplina tem maior média", "qual aluno gastou mais", ou "quantos alunos há por cidade".

Importante: todo campo que aparece fora da função agregada deve obrigatoriamente estar no GROUP BY.

Desafio: tente resolver as perguntas propostas aplicando corretamente GROUP BY quando for necessário!

📊 Dica: pense como um analista de dados! Os relatórios ajudam a tomar decisões na gestão escolar.

🌐 Tópico 5 - Aplicabilidade no mercado e boas práticas com funções agregadas

As funções agregadas não são apenas uma ferramenta acadêmica — elas são amplamente utilizadas em sistemas reais de diversos setores. Vamos entender como elas impactam o dia a dia de empresas e instituições.

🏫 Educação
  • 📊 Gerar relatórios de desempenho dos alunos por disciplina.
  • 📈 Calcular a média de frequência ou de notas por turma, série ou curso.
  • 📋 Avaliar a evolução do desempenho em diferentes trimestres.
🛒 Comércio
  • 💰 Calcular o faturamento total por mês ou por vendedor.
  • 📦 Identificar os produtos mais e menos vendidos com MAX e MIN.
  • 🧾 Gerar relatórios de ticket médio por cliente com AVG.
🏥 Saúde
  • 📄 Relatórios de número de pacientes atendidos por especialidade.
  • 📉 Análise de exames com valores médios, máximos e mínimos.
✅ Boas práticas ao utilizar funções agregadas:
  • 🔍 Sempre combine com WHERE para focar nos dados relevantes.
  • 🧹 Use GROUP BY para gerar relatórios agrupados por categorias (ex: curso, disciplina, mês).
  • 📛 Dê nomes claros aos resultados com AS para facilitar a leitura dos relatórios.
  • 🧪 Teste os comandos em pequenos conjuntos de dados antes de aplicar em bases grandes.

O uso inteligente das funções agregadas transforma qualquer sistema de banco de dados em uma poderosa ferramenta de análise e tomada de decisão. Com elas, é possível gerar indicadores, gráficos e relatórios gerenciais com rapidez e precisão.

Dica: Dominar essas funções é essencial para quem quer seguir carreira em análise de dados, BI (Business Intelligence), desenvolvimento de sistemas ou gestão de informações.