Логічні дні тижня з Hot Deck
Обчисліть загальну суму оплати на загальну відстань для кожного дня тижня. Якщо TripDistance дорівнює нулю, скористайтеся функцією імпутації Hot Deck, яку ви створили раніше в цьому розділі.
Ця вправа є частиною курсу
Написання функцій і збережених процедур у 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;