Переверните результаты с помощью OVER
В предыдущем упражнении ранжирование строилось от наименьшего значения к наибольшему. Добавив DESC в оконную функцию, можно получить ранжирование от наибольшего к наименьшему.
SELECT
id,
RANK() OVER(ORDER BY home_goal DESC) AS rank
FROM match;
Это упражнение является частью курса
Манипуляции с данными в SQL
Инструкции к упражнению
- Выберите название лиги
nameи среднее суммарное количество голов из таблицleagueиmatch. - Заполните оконную функцию, чтобы ранжировать каждую лигу по среднему количеству голов — от наибольшего к наименьшему.
- Отсортируйте основной запрос с помощью
ORDER BYпо только что созданному рангу.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
SELECT
-- Select the league name and average goals scored
___ AS league,
___(___ + m.away_goal) AS avg_goals,
-- Rank leagues in descending order by average goals
___ ___(___ ___ ___(___ + m.away_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
___ ___ ___;