LoslegenKostenlos starten

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>
Kurs ansehen

Übungsanweisungen

  • Verwende DATENAME() und PickupDate, um den Wochentag auszuwählen.
  • Nutze AVG(), um TotalAmount pro TripDistance zu berechnen, und eine CASE-Anweisung, um TripDistance zu wählen, wenn es größer als 0 ist. Falls nicht, verwende dbo.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;
Code bearbeiten und ausführen