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

วันในสัปดาห์แบบ Logical ด้วย Hot Deck

คำนวณยอดค่าโดยสารรวมต่อระยะทางรวมในแต่ละวันของสัปดาห์ หาก TripDistance มีค่าเป็นศูนย์ ให้ใช้ฟังก์ชัน Hot Deck imputation ที่สร้างไว้ก่อนหน้านี้ในบท

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

การเขียนฟังก์ชันและ Stored Procedures ใน SQL Server

ดูคอร์ส

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

  • ใช้ DATENAME() และ PickupDate เพื่อเลือกวันในสัปดาห์
  • ใช้ AVG() เพื่อคำนวณ TotalAmount ต่อ TripDistance และใช้คำสั่ง CASE เพื่อเลือก TripDistance หากมีค่ามากกว่า 0 หากไม่ใช่ ให้ใช้ dbo.GetTripDistanceHotDeck()
  • เรียงลำดับตามวันในสัปดาห์ของ PickupDate โดยให้ 'Monday' ปรากฏเป็นอันดับแรก

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

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

SELECT
    -- Select the pickup day of week
	DATENAME(weekday, PickupDate) as DayofWeek,
    -- Calculate TotalAmount per TripDistance
	CAST(AVG(TotalAmount/
            -- Select TripDistance if it's more than 0
			CASE WHEN TripDistance > 0 THEN TripDistance
                 -- Use GetTripDistanceHotDeck()
     			 ELSE dbo.GetTripDistanceHotDeck() END) as decimal(10,2)) as 'AvgFare'
FROM YellowTripData
GROUP BY DATENAME(weekday, PickupDate)
-- Order by the PickupDate day of week
ORDER BY
     ___ ___ ___(weekday, PickupDate) = '___' THEN 1
         ___ ___(weekday, PickupDate) = '___' THEN 2
         ___ ___(weekday, PickupDate) = '___' THEN 3
         ___ ___(weekday, PickupDate) = '___' THEN 4
         ___ ___(weekday, PickupDate) = '___' THEN 5
         ___ ___(weekday, PickupDate) = '___' THEN 6
         ___ ___(weekday, PickupDate) = '___' THEN 7
END ASC;
แก้ไขและรันโค้ด