PARTITION BY dla kolumny
Klauzula PARTITION BY pozwala obliczać oddzielne „okna" na podstawie wybranych kolumn. Możesz na przykład utworzyć pojedynczą kolumnę, która wyznacza ogólną średnią liczby goli strzelonych w każdym sezonie.
W tym ćwiczeniu stworzysz zbiór danych z meczami Legii Warszawa – najwyżej sklasyfikowanego polskiego klubu – i porównasz wyniki poszczególnych spotkań ze średnią dla całego sezonu.
Gdzie dostrzegasz więcej wartości odstających? Czy to mecze domowe, czy wyjazdowe Legii Warszawa?
To ćwiczenie jest częścią kursu
Data Manipulation in SQL
Instrukcje do ćwiczenia
- Uzupełnij dwie funkcje okna obliczające średnią liczby goli strzelonych u siebie i na wyjeździe. Zastosuj partycjonowanie według sezonu, aby wyznaczyć oddzielne średnie dla każdego sezonu.
- Przefiltruj zapytanie tak, aby uwzględniało wyłącznie mecze Legii Warszawa,
id = 8673.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
SELECT
date,
season,
home_goal,
away_goal,
CASE WHEN hometeam_id = 8673 THEN 'home'
ELSE 'away' END AS warsaw_location,
-- Calculate separately the average home and away goals scored, partitioned by season
___(___) ___(___ ___ ___) AS season_homeavg,
___(___) ___(___ ___ ___) AS season_awayavg
FROM match
-- Filter the data set for Legia Warszawa (id 8673) matches only
WHERE
___ = ___
OR ___ = ___
ORDER BY (home_goal + away_goal) DESC;