BaşlayınÜcretsiz başlayın

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

Kursa Göz Atın

Egzersiz talimatları

  • Haftanın gününü seçmek için DATENAME() ve PickupDate kullan.
  • TripDistance değeri 0'dan büyükse onu seçmek için bir CASE ifadesi ve AVG() kullanarak TotalAmountTripDistance başına hesapla. Değilse dbo.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;
Kodu Düzenle ve Çalıştır