शुरू करेंमुफ़्त में शुरू करें

शिफ्ट के अनुसार पिकअप लोकेशन

अब बिज़नेस केस के दूसरे उद्देश्य को हल करने का समय है। NYC Borough के भीतर प्रत्येक पिकअप लोकेशन और शिफ्ट के लिए AvgFarePerKM, RideCount और TotalRideMin क्या हैं?

यह अभ्यास पाठ्यक्रम का हिस्सा है

SQL Server में फंक्शंस और स्टोरड प्रोसीजर्स लिखना

पाठ्यक्रम देखें

अभ्यास निर्देश

  • cuspPickupZoneShiftStats नाम की एक stored procedure बनाएँ, जो @Borough nvarchar(30) को इनपुट पैरामीटर के रूप में स्वीकार करे और रिकॉर्ड्स को मिलते हुए Borough मान तक सीमित करे.
  • PickupDate के hour को dbo.GetShiftNumber() फंक्शन में पास करके 'Shift' कैलकुलेट करें। PickupDate के केवल hour हिस्से को चुनने के लिए DATEPART फंक्शन का उपयोग करें.
  • PickupDate के weekday, shift, और Zone के आधार पर group करें.
  • PickupDate के weekday (Monday सबसे पहले), shift, और TotalRideMin के आधार पर sort करें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

-- Create the stored procedure
CREATE PROCEDURE dbo.cuspPickupZoneShiftStats
	-- Specify @Borough parameter
	@Borough nvarchar(30)
AS
BEGIN
SELECT
	DATENAME(WEEKDAY, PickupDate) as 'Weekday',
    -- Calculate the shift number
	___.___(___(___, ___)) as 'Shift',
	Zone.Zone as 'Zone',
	FORMAT(AVG(dbo.ConvertDollar(TotalAmount, .77)/dbo.ConvertMiletoKM(TripDistance)), 'c', 'de-de') AS 'AvgFarePerKM',
	FORMAT(COUNT (ID),'n', 'de-de') as 'RideCount',
	FORMAT(SUM(DATEDIFF(SECOND, PickupDate, DropOffDate))/60, 'n', 'de-de') as 'TotalRideMin'
FROM YellowTripData
INNER JOIN TaxiZoneLookup as Zone on PULocationID = Zone.LocationID 
WHERE
	dbo.ConvertMiletoKM(TripDistance) > 0 AND
	Zone.Borough = @Borough
GROUP BY
	DATENAME(WEEKDAY, PickupDate),
    -- Group by shift
	___.___(___(___, ___)),  
	Zone.Zone
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,
         -- Order by shift
         ___.___(___(___, ___)),
         SUM(DATEDIFF(SECOND, PickupDate, DropOffDate))/60 DESC
END;
कोड संपादित करें और चलाएँ