CommencezCommencez gratuitement

Jours de semaine logiques avec Hot Deck

Calculez le montant total de la course par distance totale pour chaque jour de la semaine. Si TripDistance est à zéro, utilisez la fonction d'imputation Hot Deck que vous avez créée plus tôt dans le chapitre.

Cette activité fait partie du cours

Écrire des fonctions et des procédures stockées dans SQL Server

Voir le cours

Instructions de l’exercice

  • Utilisez DATENAME() et PickupDate pour sélectionner le jour de la semaine.
  • Utilisez AVG() pour calculer TotalAmount par TripDistance, et une instruction CASE pour sélectionner TripDistance si sa valeur est supérieure à 0. Sinon, utilisez dbo.GetTripDistanceHotDeck().
  • Triez selon le jour de la semaine de PickupDate, avec 'Monday' en premier.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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;
Modifier et exécuter le code