EmpezarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Usa DATENAME() y PickupDate para obtener el día de la semana.
  • Usa AVG() para calcular TotalAmount por TripDistance, y una sentencia CASE para seleccionar TripDistance si es mayor que 0. Si no, usa dbo.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;
Editar y ejecutar código