สรุปข้อมูลในช่วงเวลาที่กำหนด
SQL Server มีฟังก์ชัน aggregate ที่มีประโยชน์หลายตัว ซึ่งช่วยให้เราสรุปข้อมูลตามช่วงเวลาและดึงข้อมูลเชิงลึกได้ ในแบบฝึกหัดต่อไปนี้ เราจะดูชุดรายงานเหตุการณ์ (incident reports) ของบริษัทสมมติแห่งหนึ่ง โดยข้อมูลถูกรวบรวมไว้ในระดับรายวันแล้ว ทำให้เรามีจำนวนเหตุการณ์แยกตามประเภทและวันที่ เราต้องการวิเคราะห์เพิ่มเติมโดยดูข้อมูลเหตุการณ์ในช่วงสามเดือน ตั้งแต่วันที่ 1 สิงหาคม ถึง 31 ตุลาคม และสรุปข้อมูลเบื้องต้นผ่านการ aggregate
ฟังก์ชัน aggregate หลักที่จะใช้ในแบบฝึกหัดนี้คือ COUNT(), SUM(), MIN() และ MAX() ในแบบฝึกหัดถัดไป เราจะศึกษาฟังก์ชัน aggregate เชิงสถิติเพิ่มเติม
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์อนุกรมเวลาใน SQL Server
คำแนะนำการฝึกหัด
- เลือกฟังก์ชัน aggregate ที่เหมาะสมตามชื่อคอลัมน์ โดยเลือกจาก
COUNT(),SUM(),MIN()และMAX()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Fill in the appropriate aggregate functions
SELECT
it.IncidentType,
___(1) AS NumberOfRows,
___(ir.NumberOfIncidents) AS TotalNumberOfIncidents,
___(ir.NumberOfIncidents) AS MinNumberOfIncidents,
___(ir.NumberOfIncidents) AS MaxNumberOfIncidents,
___(ir.IncidentDate) As MinIncidentDate,
___(ir.IncidentDate) AS MaxIncidentDate
FROM dbo.IncidentRollup ir
INNER JOIN dbo.IncidentType it
ON ir.IncidentTypeID = it.IncidentTypeID
WHERE
ir.IncidentDate BETWEEN '2019-08-01' AND '2019-10-31'
GROUP BY
it.IncidentType;