BaşlayınÜcretsiz başlayın

Önceki üç dönemi görmek

LAG() ve LEAD() pencere fonksiyonları, sırasıyla zamanda geriye veya ileriye bakmamızı sağlar. Bu sayede dönemden döneme verileri tek, kolay bir sorguda karşılaştırabiliriz. Her LAG() veya LEAD() çağrısı ya NULL ya da tek bir satır döner. Birden fazla döneme geriye bakmak istiyorsan, birden fazla LAG() veya LEAD() çağrısı ekleyebilirsin.

Bu egzersizde, Temmuz 2019 boyunca, özellikle 2 Temmuz'dan başlayıp 31 Temmuz'da biten dönemde, 1 ve 2 numaralı olay türleri için günlük güvenlik olayı sayılarını karşılaştırmak istiyoruz. Yönetim, olay türüne göre iki gün geriden başlayıp bir gün ileriye bakan, dört günlük kayan bir pencere görmek istiyor; böylece belirgin eğilimler olup olmadığını anlayabilirler.

Bu egzersiz, kursun bir parçasıdır

SQL Server'da Zaman Serisi Analizi

Kursa Göz Atın

Egzersiz talimatları

  • İki dönem önceki olay sayısını döndürecek SQL'i doldur.
  • Önceki dönemden olay sayısını döndürecek SQL'i doldur.
  • Sonraki dönemden olay sayısını döndürecek SQL'i doldur.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

SELECT
	ir.IncidentDate,
	ir.IncidentTypeID,
    -- Fill in two periods ago
	___(ir.___, ___) OVER (
		PARTITION BY ir.IncidentTypeID
		ORDER BY ir.IncidentDate
	) AS Trailing2Day,
    -- Fill in one period ago
	___(ir.___, ___) OVER (
		PARTITION BY ir.IncidentTypeID
		ORDER BY ir.IncidentDate
	) AS Trailing1Day,
	ir.NumberOfIncidents AS CurrentDayIncidents,
    -- Fill in next period
	___(ir.___, ___) OVER (
		PARTITION BY ir.IncidentTypeID
		ORDER BY ir.IncidentDate
	) AS NextDay
FROM dbo.IncidentRollup ir
WHERE
	ir.IncidentDate >= '2019-07-01'
	AND ir.IncidentDate <= '2019-07-31'
	AND ir.IncidentTypeID IN (1, 2)
ORDER BY
	ir.IncidentTypeID,
	ir.IncidentDate;
Kodu Düzenle ve Çalıştır