पिछले और भविष्य के पीरियड देखना
LAG() और LEAD() विंडो फंक्शन क्रमशः समय में पीछे या आगे देखने की क्षमता देते हैं। इससे आप एक ही, आसान क्वेरी में पीरियड-ओवर-पीरियड डेटा की तुलना कर सकते हैं.
इस अभ्यास में, हम जुलाई 2019 के दौरान, विशेष रूप से 2 जुलाई से 31 जुलाई तक की अवधि में, incident type 1 और 2 के लिए प्रतिदिन होने वाली सुरक्षा घटनाओं की संख्या की तुलना करना चाहते हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
SQL Server में Time Series Analysis
अभ्यास निर्देश
- विंडो फंक्शन भरें ताकि पिछले दिन की incidents की संख्या लौटे, जिसे incident type ID के अनुसार पार्टिशन किया गया हो और incident date के अनुसार ऑर्डर किया गया हो.
- विंडो फंक्शन भरें ताकि अगले दिन की incidents की संख्या लौटे, जिसे incident type ID के अनुसार पार्टिशन किया गया हो और incident date के अनुसार ऑर्डर किया गया हो.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
SELECT
ir.IncidentDate,
ir.IncidentTypeID,
-- Get the prior day's number of incidents
___(ir.___, ___) OVER (
-- Partition by incident type ID
PARTITION BY ir.___
-- Order by incident date
ORDER BY ir.___
) AS PriorDayIncidents,
ir.NumberOfIncidents AS CurrentDayIncidents,
-- Get the next day's number of incidents
___(ir.___, ___) OVER (
-- Partition by incident type ID
PARTITION BY ir.___
-- Order by incident date
ORDER BY ir.___
) AS NextDayIncidents
FROM dbo.IncidentRollup ir
WHERE
ir.IncidentDate >= '2019-07-02'
AND ir.IncidentDate <= '2019-07-31'
AND ir.IncidentTypeID IN (1, 2)
ORDER BY
ir.IncidentTypeID,
ir.IncidentDate;