ÎncepețiÎncepe gratuit

Ce avem OVER aici?

Funcțiile de fereastră îți permit să creezi un RANK al datelor în funcție de orice variabilă dorești să folosești pentru sortare. La configurare, va trebui să specifici coloana sau calculul pe baza căruia se determină rangul. Acest lucru se face prin includerea unei clauze ORDER BY în interiorul clauzei OVER(). Mai jos găsești un exemplu:

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

În acest exercițiu, vei crea un set de date cu meciuri clasate în funcție de ligile care înscriu, în medie, cele mai multe goluri într-un meci.

Acest exercițiu face parte din cursul

Manipularea datelor în SQL

Vezi cursul

Instrucțiuni pentru exercițiu

  • Folosește SELECT pentru a extrage numele ligii și media totalului de goluri înscrise din tabelele league și match.
  • Completează funcția de fereastră astfel încât să calculeze RANK()-ul mediei golurilor înscrise pentru toate ligile din baza de date.
  • Ordonează rangul OVER media totalului de goluri înscrise acasă și în deplasare.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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 ___;
Editează și rulează codul