Ay bazında (aydan aya) karşılaştırma
Ayları karşılaştırmak için aşağıdaki window fonksiyonlarından birini kullanman gerekiyor:
LAG(value, offset): rapordaki geçerli satırdan offset kadar önceki bir satırın değerini döndürür.LEAD(value, offset): rapordaki geçerli satırdan offset kadar sonraki bir satırın değerini döndürür.
Amacın, her ülkenin aydan aya görüntülenme sayılarını gösteren bir rapor oluşturmak. Birkaç ipucu:
- Tarihleri aylara bölümlendirmen gerekecek. Bunu yapmak için
DATE_PART()fonksiyonunu kullanabilirsin. - yüzde değişimi şu formülle hesaplayabilirsin:
(value)/(previous_value) - 1. LAG()veyaLEAD()fonksiyonlarında offset değeri belirtilmezse varsayılan olarak 1 alınır.
Tablo Haziran ortasında bittiği için sorgu, verileri Mayıs sonuna kadar içerecek şekilde ayarlanmıştır.
Bu egzersiz
SQL ile Raporlama
kursunun bir parçasıdırEgzersiz talimatları
web_datatablosundancountry_idalanını çek veDATE_PART()fonksiyonunu kullanarakmonthalanını oluştur.- Ay içindeki toplam görüntülenmeleri çeken
month_viewsalanını oluştur. - İlgili ülke için geçen aydaki toplam görüntülenmeleri çeken
previous_month_viewsalanını oluştur. - İlgili ülke için bu ayın, geçen aya göre yüzde değişimini hesaplayan
perc_changealanını oluştur; negatif değer görüntülenmelerde düşüşü, pozitif değer ise artışı ifade eder.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
SELECT
-- Pull month and country_id
____ AS month,
____,
-- Pull in current month views
____ AS month_views,
-- Pull in last month views
____ AS previous_month_views,
-- Calculate the percent change
____ AS perc_change
FROM ____
WHERE date <= '2018-05-31'
GROUP BY ____;