Logische Wochentage mit Hot Deck
Berechne den Gesamtfahrpreis pro Gesamtdistanz für jeden Wochentag. Wenn TripDistance null ist, verwende die Hot-Deck-Imputationsfunktion, die du früher in diesem Kapitel erstellt hast.
Diese Übung ist Teil des Kurses
<Kurs>Funktionen und Stored Procedures in SQL Server schreiben</Kurs>Übungsanweisungen
- Verwende
DATENAME()undPickupDate, um den Wochentag auszuwählen. - Nutze
AVG(), umTotalAmountproTripDistancezu berechnen, und eineCASE-Anweisung, umTripDistancezu wählen, wenn es größer als0ist. Falls nicht, verwendedbo.GetTripDistanceHotDeck(). - Sortiere nach dem Wochentag von
PickupDate, sodass'Monday'zuerst erscheint.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
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;