इवेंट्स की एक स्ट्रीम बनाएँ
पिछले अभ्यास में, हमने डे स्पा डेटा को एंट्रेंस और एग्ज़िट की एक स्ट्रीम में तोड़ा था. डेटा को अनपिवट करने से हम अगले कदम पर जा सकते हैं, जहाँ पूरी स्ट्रीम को क्रमबद्ध करना है.
पिछले अभ्यास के परिणाम अब #StartStopPoints नाम की एक अस्थायी टेबल में हैं. इस टेबल के कॉलम हैं CustomerID, TimeUTC, EntryCount, और StartOrdinal. इस अभ्यास में आपको केवल इन्हीं कॉलमों का उपयोग करना है. TimeUTC इवेंट का समय दर्शाता है, EntryCount इवेंट के लिए नेट बदलाव (+1 या -1) बताता है, और StartOrdinal एंट्रेंस इवेंट्स के लिए आता है और एंट्री का क्रम देता है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
SQL Server में Time Series Analysis
अभ्यास निर्देश
- उपयुक्त विंडो फंक्शन (
ROW_NUMBER()) भरें ताकि चेक-इन और चेक-आउट की स्ट्रीम कालानुक्रमिक क्रम में बन जाए. - प्रति यूज़र परिणाम निकालने के लिए कस्टमर ID द्वारा पार्टिशन करें.
- इवेंट समय के अनुसार ऑर्डर करें और टाई होने पर start ordinal मान का उपयोग करके हल करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
SELECT s.*,
-- Build a stream of all check-in and check-out events
___() OVER (
-- Break this out by customer ID
PARTITION BY s.___
-- Order by event time and then the start ordinal
-- value (in case of exact time matches)
ORDER BY s.___, s.___
) AS StartOrEndOrdinal
FROM #StartStopPoints s;