НачатьНачать бесплатно

Логические дни недели с методом 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;
Редактировать и запускать код