Funções agregadas... Essas paradas são tipo mágicas no mundo da análise de dados! Elas ajudam a transformar milhões de linhas de dados em resultados resumidos e fáceis de entender. Com elas, dá pra contar, achar mínimos e máximos, calcular médias e fazer um monte de outras operações. Agora bora ver tudo isso na prática, passo a passo.
Funções agregadas são funções especiais do SQL que fazem operações em grupos de linhas e devolvem um resultado só. Se for pra comparar, é tipo juntar todas as estatísticas do seu café da manhã, tipo: quantas xícaras você tomou na semana, se colocou açúcar ou quantos dias seguidos colocou creme.
Exemplos de tarefas que as funções agregadas resolvem:
- Contar o número total de registros em uma tabela.
- Achar os valores mínimos ou máximos em uma coluna numérica.
- Somar os valores de uma das colunas.
- Calcular a média de todos os valores de uma coluna.
- Destacar valores únicos.
Como isso funciona "por baixo dos panos"?
O SQL executa a função agregada depois de buscar os dados no SELECT. Por exemplo, quando você coloca SUM() ou AVG(), o SQL primeiro pega os dados e só depois faz o cálculo nas linhas selecionadas.
Principais funções agregadas no PostgreSQL
Bora pra prática e ver o top 5 dos nossos heróis:
COUNT()— conta o número de linhas.SUM()— soma os valores de uma coluna numérica.AVG()— calcula o valor médio.MIN()— acha o valor mínimo.MAX()— acha o valor máximo.
Exemplos de uso das funções agregadas
- Contando linhas com
COUNT()
A função COUNT() permite contar o número total de linhas em uma tabela ou o número de valores não nulos em uma coluna específica.
Exemplo: imagina que a gente tem uma tabela students que guarda informações dos estudantes:
| id | name | age | grade |
|---|---|---|---|
| 1 | Otto Art | 20 | 85 |
| 2 | Maria Chi | 22 | 90 |
| 3 | Alex Lin | 21 | 78 |
| 4 | Anna Song | 23 | NULL |
Vamos contar o número total de estudantes:
SELECT
COUNT(*) AS total_students
FROM students;
Resultado:
| total_students |
|---|
| 4 |
Agora vamos contar quantos estudantes têm grade preenchido:
SELECT
COUNT(grade) AS students_with_grades
FROM students;
Resultado:
| students_with_grades |
|---|
| 3 |
Por que isso acontece? Porque COUNT(column) ignora os valores NULL.
- Somando com
SUM()
A função SUM() serve pra somar todos os valores de uma coluna numérica.
Exemplo: bora ver quantos pontos no total nossos estudantes fizeram.
SELECT
SUM(grade) AS total_grades
FROM students;
Resultado:
| total_grades |
|---|
| 253 |
Observação: Se tiver NULL na coluna, eles simplesmente são ignorados na soma.
- Média com
AVG()
A função AVG() calcula a média de todos os registros numéricos da coluna.
Exemplo: vamos calcular a média das notas dos estudantes.
SELECT
AVG(grade) AS average_grade
FROM students;
Resultado:
| average_grade |
|---|
| 84.33 |
Você deve ter reparado que NULL de novo são ignorados.
- Mínimo e máximo com
MIN()eMAX()
Às vezes a gente precisa achar o menor ou o maior valor. Pra isso existem MIN() e MAX().
Exemplo: vamos achar o estudante mais novo e o mais velho.
SELECT
MIN(age) AS youngest_student,
MAX(age) AS oldest_student
FROM students;
Resultado:
| youngest_student | oldest_student |
|---|---|
| 20 | 23 |
Vamos falar mais sobre essas funções nas próximas aulas.
Conhecendo o NULL
Vai ter uma aula só sobre NULL em breve, mas resumindo: NULL é ausência de valor. Nada. Vazio. É o nullzão mesmo!
Imagina que a gente tem uma tabela students que guarda informações dos estudantes:
| id | name | age | grade | hobbie |
|---|---|---|---|---|
| 1 | Otto Art | 20 | 85 | |
| 2 | Maria Chi | 22 | 90 | Dança |
| 3 | Alex Lin | 21 | 78 | |
| 4 | Anna Song | 23 |
Nome e idade sempre têm valor, mas nota e hobbie podem faltar. Se uma célula da tabela não tem valor nenhum, a gente diz que ela contém NULL. NULL não é número nem string, é um código especial que indica ausência de qualquer valor.
GO TO FULL VERSION