Hot Deck ile mantıksal haftanın günleri
Haftanın her günü için Toplam Mesafe başına Toplam Ücret Tutarını hesapla. TripDistance sıfırsa, bölümün önceki kısmında oluşturduğun Hot Deck atama (imputation) fonksiyonunu kullan.
Bu egzersiz, kursun bir parçasıdır
SQL Server'da Fonksiyonlar ve Saklı Yordamlar Yazma
Egzersiz talimatları
- Haftanın gününü seçmek için
DATENAME()vePickupDatekullan. TripDistancedeğeri0'dan büyükse onu seçmek için birCASEifadesi veAVG()kullanarakTotalAmount'ıTripDistancebaşına hesapla. Değilsedbo.GetTripDistanceHotDeck()kullan.PickupDate'in haftanın gününe göre sırala; ilk olarak'Monday'görünsün.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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;