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
Hướng dẫn bài tập
- Dùng
DATENAME()vàPickupDateđể lấy thứ trong tuần. - Dùng
AVG()để tínhTotalAmounttrênTripDistance, và dùng câu lệnhCASEđể chọnTripDistancenếu lớn hơn0. Nếu không, dùngdbo.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;