Logické dny v týdnu s metodou Hot Deck
Vypočítej celkovou výši jízdného na celkovou vzdálenost pro každý den v týdnu. Pokud je hodnota TripDistance nula, použij funkci imputace metodou Hot Deck, kterou jsi vytvořil/a dříve v této kapitole.
Toto cvičení je součástí kurzu
Psaní funkcí a uložených procedur v SQL Serveru
Pokyny k cvičení
- Pomocí
DATENAME()aPickupDatevyber den v týdnu. - Pomocí
AVG()vypočítejTotalAmountnaTripDistancea použij příkazCASE, který vybereTripDistance, pokud je větší než0. V opačném případě použijdbo.GetTripDistanceHotDeck(). - Seřaď výsledky podle dne v týdnu z
PickupDatetak, aby jako první byl'Monday'.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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;