Zacznij terazZacznij za darmo

Co tu OVER?

Funkcje okna pozwalają tworzyć ranking (RANK) danych według dowolnej zmiennej, której chcesz użyć do sortowania. Aby to skonfigurować, musisz wskazać kolumnę lub obliczenie, na podstawie których ma być wyznaczony ranking. Służy do tego klauzula ORDER BY umieszczona wewnątrz klauzuli OVER(). Poniżej znajdziesz przykład:

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

W tym ćwiczeniu utworzysz zbiór danych z rankingiem meczów według lig, które średnio zdobywają najwięcej goli w spotkaniu.

To ćwiczenie jest częścią kursu

Data Manipulation in SQL

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj SELECT, aby pobrać nazwę ligi i średnią łączną liczbę strzelonych goli z tabel league i match.
  • Uzupełnij funkcję okna tak, aby obliczała RANK() na podstawie średniej liczby goli strzelonych we wszystkich ligach w bazie danych.
  • Ustaw ranking OVER średnią łączną liczbę goli strzelonych przez gospodarzy i gości.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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 ___;
Edytuj i uruchom kod