Xem tất cả phép gộp với CUBE
Toán tử CUBE cung cấp phép gộp chéo cho mọi tổ hợp và có thể tạo ra số lượng hàng rất lớn. Toán tử này phù hợp nhất với dữ liệu không phân cấp, khi bạn quan tâm đến cả các phép gộp độc lập lẫn phép gộp tổng hợp.
Trong tình huống này, chúng ta muốn tìm tổng số sự cố an ninh trong bảng IncidentRollup nhưng sẽ không theo một hệ phân cấp chuẩn. Thay vào đó, chúng ta sẽ tập trung gộp nhiều thuộc tính không liên quan nhau.
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
-- Use the ORDER BY clause as a guide for these columns
-- Don't forget that comma after the third column if you
-- copy from the ORDER BY clause!
ir.___,
c.___,
c.___,
SUM(ir.NumberOfIncidents) AS NumberOfIncidents
FROM dbo.IncidentRollup ir
INNER JOIN dbo.Calendar c
ON ir.IncidentDate = c.Date
WHERE
ir.IncidentTypeID IN (3, 4)
GROUP BY
-- GROUP BY should include all non-aggregated columns
ir.___,
c.___,
c.___
-- Fill in your grouping operator
WITH ___
ORDER BY
ir.IncidentTypeID,
c.CalendarQuarterName,
c.WeekOfMonth;