Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Använd DATENAME() och PickupDate för att välja veckodag.
  • Använd AVG() för att beräkna TotalAmount per TripDistance, och en CASE-sats för att välja TripDistance om den är större än 0. Annars använder du dbo.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;
Redigera och kör kod