เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ดูข้อมูลช่วงเวลาก่อนหน้าและถัดไป

Window function LAG() และ LEAD() ช่วยให้เราสามารถมองย้อนหลังหรือมองไปข้างหน้าตามลำดับเวลาได้ตามลำดับ ทำให้เปรียบเทียบข้อมูลแบบ period-over-period ได้ในคิวรีเดียวอย่างสะดวก

ในแบบฝึกหัดนี้ เราต้องการเปรียบเทียบจำนวนเหตุการณ์ด้านความปลอดภัยรายวัน สำหรับประเภทเหตุการณ์ 1 และ 2 ในเดือนกรกฎาคม 2019 โดยเฉพาะช่วงตั้งแต่วันที่ 2 กรกฎาคม ถึง 31 กรกฎาคม

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การวิเคราะห์อนุกรมเวลาใน SQL Server

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เติม window function เพื่อดึงจำนวนเหตุการณ์ของวันก่อนหน้า โดย partition ตาม incident type ID และเรียงลำดับตามวันที่เกิดเหตุการณ์
  • เติม window function เพื่อดึงจำนวนเหตุการณ์ของวันถัดไป โดย partition ตาม incident type ID และเรียงลำดับตามวันที่เกิดเหตุการณ์

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

SELECT
	ir.IncidentDate,
	ir.IncidentTypeID,
    -- Get the prior day's number of incidents
	___(ir.___, ___) OVER (
      	-- Partition by incident type ID
		PARTITION BY ir.___
      	-- Order by incident date
		ORDER BY ir.___
	) AS PriorDayIncidents,
	ir.NumberOfIncidents AS CurrentDayIncidents,
    -- Get the next day's number of incidents
	___(ir.___, ___) OVER (
      	-- Partition by incident type ID
		PARTITION BY ir.___
      	-- Order by incident date
		ORDER BY ir.___
	) AS NextDayIncidents
FROM dbo.IncidentRollup ir
WHERE
	ir.IncidentDate >= '2019-07-02'
	AND ir.IncidentDate <= '2019-07-31'
	AND ir.IncidentTypeID IN (1, 2)
ORDER BY
	ir.IncidentTypeID,
	ir.IncidentDate;
แก้ไขและรันโค้ด