Funções de agregação
Parte da seção Fundamentos do Journey de SQL da Coddy. Lição 68 de 72.
As funções de agregação são usadas para calcular AVG(), MAX() ou qualquer outra função de agregação até a linha atual.
Por exemplo, poderíamos calcular a receita máxima que obtivemos até cada período final:
| mês | receita | região |
| 4 | 40 | Leste |
| 5 | 20 | Leste |
| 6 | 60 | Oeste |
| 7 | 55 | Oeste |
| 8 | 61 | Leste |
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1Isso retornará:
| mês | receita | max_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 40 |
| 6 | 60 | 60 |
| 7 | 55 | 60 |
| 8 | 61 | 61 |
Para os meses 4 e 5, a receita máxima é 40; para os meses 6 e 7, é 60; e para o mês 8, é 61. Isso acontece porque, quando encontra uma nova receita maior, ele descarta a antiga e usa a maior até o momento.
Para a função AVG(), ficará assim:
SELECT month, revenue, AVG(revenue) OVER (ORDER BY month ASC) as avg_revenue
from table1| mês | receita | avg_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 30 |
| 6 | 60 | 40 |
| 7 | 55 | 43.75 |
| 8 | 61 | 47.2 |
Também podemos agrupar nossos cálculos por categorias específicas usando PARTITION BY. Por exemplo:
SELECT month, revenue, region,
MAX(revenue) OVER (PARTITION BY region ORDER BY month ASC) as max_revenue
FROM table1Isso nos daria:
| mês | receita | região | max_revenue |
| 4 | 40 | East | 40 |
| 5 | 20 | East | 40 |
| 6 | 60 | West | 60 |
| 7 | 55 | West | 60 |
| 8 | 61 | East | 61 |
Agora o máximo é calculado separadamente para cada região. As regiões East e West mantêm seus próprios máximos acumulados de forma independente.
Desafio
FácilTabelas e colunas disponíveis:
books:book,page,words
Para cada livro, exiba o nome do livro, o total de páginas, o número de palavras em cada página e calcule:
- O número máximo de palavras encontrado em qualquer página desse livro
- O número médio de palavras por página para o livro inteiro
- A diferença entre o número de palavras da página atual e a média de palavras por página do livro
Exiba os resultados ordenados por livro e número da página.
Retorne as seguintes colunas:
bookpagewordsmax_words_in_bookavg_words_per_pagediff_from_avg
Experimente você mesmo
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Mais palavras-chave
A palavra-chave INA palavra-chave BETWEENA palavra-chave LIKEA palavra-chave ASRecapitulação - Modelos de celulares2Condições
Noções básicas de condiçõesA palavra-chave ANDA palavra-chave ORA palavra-chave NOTCombinação de várias condiçõesParêntesesBooleanos3Formato de retorno específico
Valores nulosOrdenar resultados - Parte 1Ordenar resultados - Parte 2Recapitulação - Empresa de segurança cibernéticaLimitar o número de registrosRecapitulação - Fábrica de veículos6Desafios introdutórios
Revisão - Eleição parlamentarRevisão - Prisão criminal pela políciaRevisão - Recipiente de bebidas de barRevisão - Projetar novas colunas9Múltiplas tabelas
JOIN básico – Parte 1JOIN básico – Parte 2Revisão – JOINAuto-JOINRevisão – Auto-JOINUNIONSimplifique consultas com a palavra-chave WITHRevisão – Consultas com WITHRevisão – Prestador de serviços imobiliários12Funções de Janela parte 2
Funções RANK e DENSE_RANKRecapitulação - RANK e DENSE_RANKFunção NTILEFunções de agregaçãoCritério ROWS e RANGEPratique por conta própria: Playground de SQL