ПочатиПочніть безкоштовно

Логічні дні тижня з 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;
Редагувати та запускати код