Začněte nyníZačněte zdarma

Logické dny v týdnu s metodou Hot Deck

Vypočítej celkovou výši jízdného na celkovou vzdálenost pro každý den v týdnu. Pokud je hodnota TripDistance nula, použij funkci imputace metodou Hot Deck, kterou jsi vytvořil/a dříve v této kapitole.

Toto cvičení je součástí kurzu

Psaní funkcí a uložených procedur v SQL Serveru

Zobrazit kurz

Pokyny k cvičení

  • Pomocí DATENAME() a PickupDate vyber den v týdnu.
  • Pomocí AVG() vypočítej TotalAmount na TripDistance a použij příkaz CASE, který vybere TripDistance, pokud je větší než 0. V opačném případě použij dbo.GetTripDistanceHotDeck().
  • Seřaď výsledky podle dne v týdnu z PickupDate tak, aby jako první byl 'Monday'.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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;
Upravit a spustit kód