Días laborables lógicos con Hot Deck
Calcula el importe total de la tarifa por distancia total para cada día de la semana. Si TripDistance es cero, usa la función de imputación Hot Deck que creaste antes en el capítulo.
Este ejercicio forma parte del curso
Escritura de funciones y procedimientos almacenados en SQL Server
Instrucciones del ejercicio
- Usa
DATENAME()yPickupDatepara obtener el día de la semana. - Usa
AVG()para calcularTotalAmountporTripDistance, y una sentenciaCASEpara seleccionarTripDistancesi es mayor que0. Si no, usadbo.GetTripDistanceHotDeck(). - Ordena por el día de la semana de
PickupDate, con'Monday'apareciendo primero.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
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;