O que você acha do OVER aqui?
As funções de janela permitem que você crie um RANK
de informações de acordo com qualquer variável que queira usar para classificar seus dados. Ao configurar isso, você precisará especificar qual coluna/cálculo deseja usar para calcular sua classificação. Isso é feito com a inclusão de uma cláusula ORDER BY
dentro da cláusula OVER()
. Veja abaixo um exemplo:
SELECT
id,
RANK() OVER(ORDER BY home_goal) AS rank
FROM match;
Neste exercício, você criará um conjunto de dados de partidas classificado de acordo com quais ligas, em média, marcam mais gols em uma partida.
Este exercício faz parte do curso
Manipulação de dados em SQL
Instruções do exercício
- Selecione o nome da liga e o total médio de gols marcados em
league
ematch
. - Complete a função de janela para que ela calcule a classificação da média de gols marcados em todas as ligas do banco de dados.
- Ordene a classificação pelo total médio de gols marcados em casa e fora.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
SELECT
-- Select the league name and average goals scored
___ AS league,
___(___ + ___.away_goal) AS avg_goals,
-- Rank each league according to the average goals
___ ___(___ ___ AVG(___.home_goal + ___)) AS league_rank
FROM league AS l
LEFT JOIN match AS m
ON l.id = m.country_id
WHERE m.season = '2011/2012'
GROUP BY l.name
-- Order the query by the rank you created
ORDER BY ___;