НачатьНачать бесплатно

Что здесь OVER?

Оконные функции позволяют создавать RANK на основе любой переменной, по которой вы хотите отсортировать данные. Для этого нужно указать столбец или вычисление, используемое для определения ранга. Это делается с помощью предложения ORDER BY внутри предложения OVER(). Ниже приведён пример:

SELECT 
    id,
    RANK() OVER(ORDER BY home_goal) AS rank
FROM match;

В этом упражнении вы создадите набор данных с ранжированными матчами по лигам — в зависимости от того, в каких лигах в среднем забивается больше всего голов за матч.

Это упражнение является частью курса

Манипуляции с данными в SQL

Посмотреть курс

Инструкции к упражнению

  • С помощью SELECT выберите название лиги и среднее общее количество забитых голов из таблиц league и match.
  • Дополните оконную функцию так, чтобы она вычисляла RANK() по среднему количеству голов по всем лигам в базе данных.
  • Задайте порядок ранжирования OVER по среднему суммарному количеству голов хозяев и гостей.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

SELECT 
	-- Select the league name and average goals scored
	___ AS league,
    ___(___ + ___.away_goal) AS avg_goals,
    -- Rank each league over 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 ___;
Редактировать и запускать код