BURADA OVER ne işe yarıyor?
Window fonksiyonları, verilerini hangi değişkene göre sıralamak istiyorsan ona göre bir bilgi RANK’i oluşturmanı sağlar. Bunu kurarken, sıralamayı (rank’i) hesaplamak için hangi sütunu/hesaplamayı kullanacağını belirtmen gerekir. Bu, OVER() ifadesinin içine bir ORDER BY yan tümcesi ekleyerek yapılır. Aşağıda bir örnek var:
SELECT
id,
RANK() OVER(ORDER BY home_goal) AS rank
FROM match;
Bu egzersizde, ortalama olarak bir maçta en fazla golün atıldığı liglere göre sıralanmış bir maç veri kümesi oluşturacaksın.
Bu egzersiz, kursun bir parçasıdır
SQL ile Veri İşleme
Egzersiz talimatları
leaguevematchtablolarından lig adını ve atılan ortalama toplam golüSELECTet.- Window fonksiyonunu tamamla ki veritabanındaki tüm ligler arasında atılan ortalama gollerin
RANK()değerini hesaplasın. - Sıralamayı, atılan ev sahibi ve deplasman gollerinin ortalama toplamı
OVERolacak şekilde yap.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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 ___;