NYC 자치구 통계 SP
이제 이 강의에서 배운 내용을 적용해 Taxi Ride 비즈니스 과제의 첫 번째 목표를 해결하는 저장 프로시저를 작성해 보세요. 각 NYC 자치구와 요일별로 AvgFarePerKM, RideCount, TotalRideMin을 계산합니다. 이해관계자와의 논의에 따라 TripDistance가 0인 레코드는 제외해야 합니다.
이 연습은 강의의 일부입니다
SQL Server에서 함수와 저장 프로시저 작성하기
연습 안내
- 픽업 요일과
Borough로 선택하고 그룹화하세요. dbo.ConvertDollar()와dbo.ConvertMiletoKM()을 사용하여 유로 환율.88을 적용해AvgFarePerKM을 계산하세요.AvgFarePerKM은 독일 통화로,RideCount와TotalRideMin은 독일 숫자 형식으로 표시하세요.TripDistance가0인 레코드는 제외하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
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;