Mulai sekarangMulai gratis

Hari kerja logis dengan Hot Deck

Hitung Total Fare Amount per Total Distance untuk setiap hari dalam seminggu. Jika TripDistance bernilai nol, gunakan fungsi imputasi Hot Deck yang Anda buat sebelumnya di bab ini.

Latihan ini merupakan bagian dari kursus

Menulis Function dan Stored Procedure di SQL Server

Lihat Kursus

Instruksi latihan

  • Gunakan DATENAME() dan PickupDate untuk memilih hari dalam seminggu.
  • Gunakan AVG() untuk menghitung TotalAmount per TripDistance, dan pernyataan CASE untuk memilih TripDistance jika nilainya lebih dari 0. Jika tidak, gunakan dbo.GetTripDistanceHotDeck().
  • Urutkan berdasarkan hari dalam seminggu dari PickupDate, dengan 'Monday' muncul pertama.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

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;
Edit dan Jalankan Kode