Hoàn tất phân tích gian lận
Cho đến giờ, chúng ta đã tách dữ liệu day spa thành một dòng các lần vào và ra, rồi sắp xếp dòng này theo thứ tự thời gian. Dòng dữ liệu này có hai trường quan trọng: StartOrdinal và StartOrEndOrdinal. StartOrdinal là thứ tự thời gian của tất cả các lần vào. StartOrEndOrdinal chứa cả các lần vào và ra theo thứ tự. Với hai thông tin này, bạn có thể tìm được số lượt ghé thăm đồng thời tối đa.
Kết quả từ bài tập trước hiện đã có trong bảng tạm tên là #StartStopOrder.
Bài tập này là một phần của khóa học
Phân tích chuỗi thời gian trong SQL Server
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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 ___ ___;