Logiska veckodagar med Hot Deck
Beräkna det totala biljettpriset per total sträcka för varje veckodag. Om TripDistance är noll använder du den Hot Deck-imputeringsfunktion som du skapade tidigare i kapitlet.
Den här övningen är en del av kursen
Skriva funktioner och lagrade procedurer i SQL Server
Övningsinstruktioner
- Använd
DATENAME()ochPickupDateför att välja veckodag. - Använd
AVG()för att beräknaTotalAmountperTripDistance, och enCASE-sats för att väljaTripDistanceom den är större än0. Annars använder dudbo.GetTripDistanceHotDeck(). - Sortera efter veckodag baserat på
PickupDate, med'Monday'först.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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;