Aan de slagBegin gratis

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

Bekijk cursus

Oefeninstructies

  • Gebruik DATENAME() en PickupDate om de dag van de week te selecteren.
  • Gebruik AVG() om TotalAmount per TripDistance te berekenen, en een CASE-instructie om TripDistance te kiezen als die groter is dan 0. Zo niet, gebruik dan dbo.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;
Code bewerken en uitvoeren