시작하기무료로 시작하기

NYC 자치구 통계 SP

이제 이 강의에서 배운 내용을 적용해 Taxi Ride 비즈니스 과제의 첫 번째 목표를 해결하는 저장 프로시저를 작성해 보세요. 각 NYC 자치구와 요일별로 AvgFarePerKM, RideCount, TotalRideMin을 계산합니다. 이해관계자와의 논의에 따라 TripDistance가 0인 레코드는 제외해야 합니다.

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

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

강의 보기

연습 안내

  • 픽업 요일과 Borough로 선택하고 그룹화하세요.
  • dbo.ConvertDollar()dbo.ConvertMiletoKM()을 사용하여 유로 환율 .88을 적용해 AvgFarePerKM을 계산하세요.
  • AvgFarePerKM은 독일 통화로, RideCountTotalRideMin은 독일 숫자 형식으로 표시하세요.
  • TripDistance0인 레코드는 제외하세요.

실습형 인터랙티브 연습

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

CREATE OR ALTER PROCEDURE dbo.cuspBoroughRideStats
AS
BEGIN
SELECT
    -- Calculate the pickup weekday
	___(weekday, PickupDate) AS 'Weekday',
    -- Select the Borough
	Zone.Borough AS 'PickupBorough',
    -- Display AvgFarePerKM as German currency
	___(AVG(dbo.___(TotalAmount, .88)/dbo.___(TripDistance)), '_', 'de-de') AS '___',
    -- Display RideCount in the German format
	___(COUNT(ID), '_', 'de-de') AS '___',
    -- Display TotalRideMin in the German format
	___(SUM(DATEDIFF(SECOND, PickupDate, DropOffDate))/60, '_', 'de-de') AS '___'
FROM YellowTripData
INNER JOIN TaxiZoneLookup AS Zone 
ON PULocationID = Zone.LocationID
-- Only include records where TripDistance is greater than 0
___ ___ > ___
-- Group by pickup weekday and Borough
GROUP BY DATENAME(WEEKDAY, PickupDate), Zone.Borough
ORDER BY CASE WHEN DATENAME(WEEKDAY, PickupDate) = 'Monday' THEN 1
	     	  WHEN DATENAME(WEEKDAY, PickupDate) = 'Tuesday' THEN 2
              WHEN DATENAME(WEEKDAY, PickupDate) = 'Wednesday' THEN 3
              WHEN DATENAME(WEEKDAY, PickupDate) = 'Thursday' THEN 4
              WHEN DATENAME(WEEKDAY, PickupDate) = 'Friday' THEN 5
              WHEN DATENAME(WEEKDAY, PickupDate) = 'Saturday' THEN 6
              WHEN DATENAME(WEEKDAY, PickupDate) = 'Sunday' THEN 7 END,  
		 SUM(DATEDIFF(SECOND, PickupDate, DropOffDate))/60
DESC
END;
코드 편집 및 실행