Zile logice ale săptămânii cu Hot Deck
Calculează suma totală a tarifului per distanță totală parcursă pentru fiecare zi a săptămânii. Dacă TripDistance este zero, folosește funcția de imputare Hot Deck pe care ai creat-o mai devreme în capitol.
Acest exercițiu face parte din cursul
Scrierea funcțiilor și a procedurilor stocate în SQL Server
Instrucțiuni pentru exercițiu
- Folosește
DATENAME()șiPickupDatepentru a selecta ziua săptămânii. - Folosește
AVG()pentru a calculaTotalAmountraportat laTripDistanceși o instrucțiuneCASEpentru a selectaTripDistancedacă aceasta este mai mare decât0. În caz contrar, foloseștedbo.GetTripDistanceHotDeck(). - Ordonează rezultatele după ziua săptămânii din
PickupDate, cu'Monday'pe primul loc.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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;