시작하기무료로 시작하기

Hot Deck을 이용한 평일 논리 처리

요일별로 총 거리 대비 총 요금 금액(Total Fare Amount per Total Distance)을 계산하세요. TripDistance가 0이면 이 장 앞부분에서 만든 Hot Deck 대치 함수(Hot Deck imputation function)를 사용하세요.

이 연습은 강의의 일부입니다

SQL Server에서 함수와 저장 프로시저 작성하기

강의 보기

연습 안내

  • DATENAME()PickupDate를 사용해 요일을 선택하세요.
  • AVG()TripDistanceTotalAmount를 계산하고, CASE 문을 사용해 TripDistance0보다 크면 그 값을 선택하세요. 그렇지 않으면 dbo.GetTripDistanceHotDeck()을 사용하세요.
  • PickupDate의 요일 순으로 정렬하되, 'Monday'가 먼저 오도록 하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

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;
코드 편집 및 실행