Inizia subitoInizia gratis

Giorni feriali logici con Hot Deck

Calcola l'importo totale della corsa per la distanza totale per ciascun giorno della settimana. Se TripDistance è zero, usa la funzione di imputazione Hot Deck che hai creato in precedenza nel capitolo.

Questo esercizio fa parte del corso

Scrivere funzioni e stored procedure in SQL Server

Visualizza corso

Istruzioni dell'esercizio

  • Usa DATENAME() e PickupDate per selezionare il giorno della settimana.
  • Usa AVG() per calcolare TotalAmount per TripDistance, e un'istruzione CASE per selezionare TripDistance se è maggiore di 0. In caso contrario, usa dbo.GetTripDistanceHotDeck().
  • Ordina per il giorno della settimana di PickupDate, con 'Monday' come primo.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

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;
Modifica ed esegui il codice