ÎncepețiÎncepe gratuit

Zile logice ale săptămânii cu Hot Deck

Calculează suma totală a tarifului per distanță totală parcursă pentru fiecare zi a săptămânii. Dacă TripDistance este zero, folosește funcția de imputare Hot Deck pe care ai creat-o mai devreme în capitol.

Acest exercițiu face parte din cursul

Scrierea funcțiilor și a procedurilor stocate în SQL Server

Vezi cursul

Instrucțiuni pentru exercițiu

  • Folosește DATENAME() și PickupDate pentru a selecta ziua săptămânii.
  • Folosește AVG() pentru a calcula TotalAmount raportat la TripDistance și o instrucțiune CASE pentru a selecta TripDistance dacă aceasta este mai mare decât 0. În caz contrar, folosește dbo.GetTripDistanceHotDeck().
  • Ordonează rezultatele după ziua săptămânii din PickupDate, cu 'Monday' pe primul loc.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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;
Editează și rulează codul