Aan de slagBegin gratis

SP met statistieken per stadsdeel van NYC

Tijd om toe te passen wat je in deze cursus hebt geleerd en een stored procedure te schrijven om het eerste doel van de Taxi Ride-businesscase op te lossen. Bereken AvgFarePerKM, RideCount en TotalRideMin voor elk NYC-stadsdeel en elke weekdag. Na overleg met stakeholders moet je records weglaten waarbij TripDistance nul is.

Deze oefening maakt deel uit van de cursus

Functies en opgeslagen procedures schrijven in SQL Server

Bekijk cursus

Oefeninstructies

  • Selecteer en groepeer op ophaaldag van de week en Borough.
  • Bereken AvgFarePerKM met dbo.ConvertDollar() en dbo.ConvertMiletoKM() met een wisselkoers van .88 naar de euro.
  • Toon AvgFarePerKM als Duitse valuta, en RideCount en TotalRideMin als Duitse getallen.
  • Laat records weg waarbij TripDistance 0 is.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

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;
Code bewerken en uitvoeren