Bắt đầu ngayBắt đầu miễn phí

Thứ trong tuần logic với Hot Deck

Tính Tổng tiền cước trên Tổng quãng đường cho từng ngày trong tuần. Nếu TripDistance bằng 0, hãy dùng hàm nội suy Hot Deck mà bạn đã tạo trước đó trong chương.

Bài tập này là một phần của khóa học

Viết Hàm và Thủ Tục Lưu Trữ trong SQL Server

Xem khóa học

Hướng dẫn bài tập

  • Dùng DATENAME()PickupDate để lấy thứ trong tuần.
  • Dùng AVG() để tính TotalAmount trên TripDistance, và dùng câu lệnh CASE để chọn TripDistance nếu lớn hơn 0. Nếu không, dùng dbo.GetTripDistanceHotDeck().
  • Sắp xếp theo thứ trong tuần của PickupDate, với 'Monday' xuất hiện đầu tiên.

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
    -- 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;
Chỉnh sửa và Chạy Mã