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
Instructions de l’exercice
- Utilisez
DATENAME()etPickupDatepour sélectionner le jour de la semaine. - Utilisez
AVG()pour calculerTotalAmountparTripDistance, et une instructionCASEpour sélectionnerTripDistancesi sa valeur est supérieure à0. Sinon, utilisezdbo.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;