Giorni feriali logici con Hot Deck
Calcola l'importo totale della corsa per la distanza totale per ciascun giorno della settimana. Se TripDistance è zero, usa la funzione di imputazione Hot Deck che hai creato in precedenza nel capitolo.
Questo esercizio fa parte del corso
Scrivere funzioni e stored procedure in SQL Server
Istruzioni dell'esercizio
- Usa
DATENAME()ePickupDateper selezionare il giorno della settimana. - Usa
AVG()per calcolareTotalAmountperTripDistance, e un'istruzioneCASEper selezionareTripDistancese è maggiore di0. In caso contrario, usadbo.GetTripDistanceHotDeck(). - Ordina per il giorno della settimana di
PickupDate, con'Monday'come primo.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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;