เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

สร้าง stream ของเหตุการณ์

ในแบบฝึกหัดก่อนหน้า เราแยกข้อมูลสปาประจำวันออกเป็น stream ของการเข้าและออก การ unpivot ข้อมูลช่วยให้เราก้าวไปสู่ขั้นตอนถัดไป ซึ่งก็คือการเรียงลำดับ stream ทั้งหมด

ผลลัพธ์จากแบบฝึกหัดก่อนหน้าถูกเก็บไว้ในตารางชั่วคราวชื่อ #StartStopPoints โดยตารางนี้มีคอลัมน์ได้แก่ CustomerID, TimeUTC, EntryCount และ StartOrdinal คอลัมน์เหล่านี้เท่านั้นที่ต้องใช้ในแบบฝึกหัดนี้ โดย TimeUTC แทนเวลาของเหตุการณ์ EntryCount บ่งบอกถึงการเปลี่ยนแปลงสุทธิของเหตุการณ์ (+1 หรือ -1) และ StartOrdinal ปรากฏสำหรับเหตุการณ์การเข้า พร้อมระบุลำดับการเข้า

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การวิเคราะห์อนุกรมเวลาใน SQL Server

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ใส่ window function ที่เหมาะสม (ROW_NUMBER()) เพื่อสร้าง stream ของการ check-in และ check-out ตามลำดับเวลา
  • Partition ตาม customer 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;
แก้ไขและรันโค้ด