วิเคราะห์การทุจริตให้สมบูรณ์
จนถึงตอนนี้ เราได้แยกข้อมูลสปาประจำวันออกเป็นสตรีมของการเข้าและออก และจัดเรียงสตรีมนี้ตามลำดับเวลาแล้ว สตรีมนี้มีสองฟิลด์สำคัญ ได้แก่ StartOrdinal และ StartOrEndOrdinal โดย StartOrdinal คือลำดับเวลาของการเข้าทั้งหมด ส่วน StartOrEndOrdinal ประกอบด้วยทั้งการเข้าและออกตามลำดับ เมื่อมีข้อมูลสองส่วนนี้แล้ว เราสามารถหาจำนวนการเยี่ยมชมพร้อมกันสูงสุดได้
ผลลัพธ์จากแบบฝึกหัดก่อนหน้าถูกเก็บไว้ในตารางชั่วคราวชื่อ #StartStopOrder แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์อนุกรมเวลาใน SQL Server
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
SELECT
s.CustomerID,
MAX(2 * s.StartOrdinal - s.StartOrEndOrdinal) AS MaxConcurrentCustomerVisits
FROM #StartStopOrder s
WHERE s.EntryCount = 1
GROUP BY s.CustomerID
-- The difference between 2 * start ordinal and the start/end
-- ordinal represents the number of concurrent visits
HAVING MAX(2 * s.___ - s.___) > 2
-- Sort by the largest number of max concurrent customer visits
ORDER BY ___ ___;