การใช้งานฟังก์ชัน Aggregate เชิงสถิติ
SQL Server มีฟังก์ชัน aggregate หลายตัวสำหรับงานด้านสถิติ ฟังก์ชัน AVG() ใช้คำนวณค่าเฉลี่ยของกลุ่มตัวอย่าง ส่วน STDEV() และ STDEVP() ใช้คำนวณค่าเบี่ยงเบนมาตรฐานของกลุ่มตัวอย่างและประชากร ตามลำดับ และ VAR() กับ VARP() ใช้คำนวณค่าความแปรปรวนของกลุ่มตัวอย่างและประชากร ตามลำดับ ฟังก์ชันเหล่านี้มาเพิ่มเติมจากฟังก์ชัน aggregate ที่เรียนไปในแบบฝึกหัดก่อนหน้า ได้แก่ SUM(), COUNT(), MIN() และ MAX()
ในแบบฝึกหัดนี้ เราจะกลับมาดูข้อมูลสรุปเหตุการณ์และประเภทเหตุการณ์อีกครั้ง คราวนี้เป็นข้อมูลของไตรมาสที่ 2 ของปีปฏิทิน 2020 เป้าหมายคือทำความเข้าใจว่าการเกิดเหตุการณ์มีความกระจายตัวมากน้อยเพียงใด กล่าวคือ จำนวนเหตุการณ์ที่เกิดขึ้นในแต่ละวันมีความสม่ำเสมอ หรือมีความผันผวนสูง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์อนุกรมเวลาใน SQL Server
คำแนะนำการฝึกหัด
- เติมฟังก์ชัน aggregate ที่ขาดหายไปให้ครบ โดยสำหรับค่าเบี่ยงเบนมาตรฐานและค่าความแปรปรวน ให้ใช้ฟังก์ชันแบบกลุ่มตัวอย่าง ไม่ใช่แบบประชากร
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Fill in the missing function names
SELECT
it.IncidentType,
___(ir.NumberOfIncidents) AS MeanNumberOfIncidents,
___(CAST(ir.NumberOfIncidents AS DECIMAL(4,2))) AS MeanNumberOfIncidents,
___(ir.NumberOfIncidents) AS NumberOfIncidentsStandardDeviation,
___(ir.NumberOfIncidents) AS NumberOfIncidentsVariance,
___(1) AS NumberOfRows
FROM dbo.IncidentRollup ir
INNER JOIN dbo.IncidentType it
ON ir.IncidentTypeID = it.IncidentTypeID
INNER JOIN dbo.Calendar c
ON ir.IncidentDate = c.Date
WHERE
c.CalendarQuarter = 2
AND c.CalendarYear = 2020
GROUP BY
it.IncidentType;