Dias da semana lógicos com Hot Deck
Calcule o Valor Total da Corrida por Distância Total para cada dia da semana. Se o TripDistance for zero, use a função de imputação Hot Deck que você criou anteriormente no capítulo.
Este exercicio faz parte do curso
Escrevendo Funções e Procedures no SQL Server
Instruções do exercicio
- Use
DATENAME()ePickupDatepara selecionar o dia da semana. - Use
AVG()para calcularTotalAmountporTripDistance, e uma instruçãoCASEpara selecionarTripDistancese for maior que0. Caso contrário, usedbo.GetTripDistanceHotDeck(). - Ordene pelo dia da semana de
PickupDate, com'Monday'aparecendo primeiro.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
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;