SQL e DadosTrilha · etapa 88 min
Agregação com GROUP BY: SUM, COUNT, AVG, MIN e MAX
Vídeos desta etapa, na ordem do portal:
- Agregações com GROUP BY · 8 min
Você já projeta colunas com SELECT, FROM, AS e ROUND, filtra linhas com WHERE, AND, OR, IN e ordena com ORDER BY, ASC e DESC. Sem agregação, cada linha continua solta e não dá para resumir por grupo. Esta aula introduz SUM, COUNT, AVG, MIN, MAX com GROUP BY e destrava contar tornados por ano e média mensal de temperatura.
O que foi falado
Agregação resume linhas por grupo
Vídeo 1 · 00:00:26Agregação resume várias linhas em um valor representativo por grupo. É o que acontece em relatório e dashboard quando você soma vendas por mês. Sem agrupar você vê linha por linha, com agregação você vê o total ou a média de cada grupo.
Vídeo 1 · 00:01:06SUM,COUNT,AVG,MINeMAXSUM soma, AVG calcula a média e MIN/MAX encontram os extremos dos valores não nulos de uma coluna. COUNT(*) conta linhas; COUNT(coluna) conta somente valores não nulos dessa coluna. As funções podem resumir todas as linhas da consulta ou cada grupo definido por GROUP BY.
SELECT SUM(coluna) FROM tabelaSintaxe
Vídeo 1 · 00:01:47SELECTcomGROUP BYe regra da colunaO padrão é
SELECT coluna, FUNCAO(coluna) FROM tabela WHERE ... GROUP BY coluna. Acolunaque aparece fora da função precisa estar também emGROUP BY. Se você exibircolunasem agrupar por ela, a query não funciona como esperado.SELECT coluna, COUNT(*) FROM tabela GROUP BY coluna
Vídeo 1 · 00:02:12WHEREfiltra antes,GROUP BYagrupa depoisWHERE escolhe as linhas antes da agregação, e GROUP BY reúne as linhas restantes. A ordem escrita das cláusulas é SELECT ... FROM ... WHERE ... GROUP BY ..., mas isso não é a ordem lógica das operações: a origem e o filtro vêm antes do agrupamento e da projeção do resultado.
SELECT coluna, COUNT(*) FROM tabela WHERE coluna = 1 GROUP BY colunaContar tornados por ano com
Vídeo 1 · 00:02:51COUNTO exemplo conta registros de tornado por ano. Filtra só linhas com
Tornado = 1e agrupa por ano comGROUP BY. O resultado mostraYeare a contagem daquele ano comCOUNT.SELECT Year, COUNT(*) FROM tabela WHERE Tornado = 1 GROUP BY YearMédia mensal de temperatura com
Vídeo 1 · 00:04:31AVGO exemplo calcula temperatura média por mês. Filtra
Year >= 2000comWHEREe agrupa por mês comGROUP BY. A coluna calculada comAVGganha apelido comASpara deixar o resultado mais legível.SELECT mes, AVG(temperatura) AS media FROM tabela WHERE Year >= 2000 GROUP BY mes
Conceitos da aula
- Agregação
- SUM
- COUNT
- AVG
- MIN
- MAX
- GROUP BY
- SELECT
- WHERE
- Alias (AS)
Reforce este assunto
- DISTINCT, GROUP BY, HAVING e funções de agregaçãoSQL e Dados · aula 14
- HAVING vs WHERE, agregações e cálculosSQL e Dados · aula 16
- LIKE, BETWEEN, IN, DISTINCT, ORDER BY e GROUP BYSQL e Dados · aula 13