Logische weekdagen met Hot Deck
Bereken het totale ritbedrag per totale afstand voor elke dag van de week. Als TripDistance nul is, gebruik dan de Hot Deck-imputatiefunctie die je eerder in dit hoofdstuk hebt gemaakt.
Deze oefening maakt deel uit van de cursus
Functies en opgeslagen procedures schrijven in SQL Server
Oefeninstructies
- Gebruik
DATENAME()enPickupDateom de dag van de week te selecteren. - Gebruik
AVG()omTotalAmountperTripDistancete berekenen, en eenCASE-instructie omTripDistancete kiezen als die groter is dan0. Zo niet, gebruik dandbo.GetTripDistanceHotDeck(). - Sorteer op de dag van de week van
PickupDate, met'Monday'als eerste.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
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;