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
Instruksi latihan
- Gunakan
DATENAME()danPickupDateuntuk memilih hari dalam seminggu. - Gunakan
AVG()untuk menghitungTotalAmountperTripDistance, dan pernyataanCASEuntuk memilihTripDistancejika nilainya lebih dari0. Jika tidak, gunakandbo.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;