Writing Functions and Stored Procedures in SQL Server
Meghan Kwartler
IT Consultant
SELECT *
FROM CapitalBikeShare
WHERE
StartDate > GetDate()
OR EndDate > GetDate()
OR StartDate > EndDate
CREATE PROCEDURE dbo.ImputeDurMean
AS
BEGIN
DECLARE @AvgTripDuration AS float
SELECT @AvgTripDuration = AVG(Duration)
FROM CapitalBikeShare
WHERE Duration > 0
UPDATE CapitalBikeShare
SET Duration = @AvgTripDuration
WHERE Duration = 0
END;
TABLESAMPLE
clause of FROM
clauseCREATE FUNCTION dbo.GetDurHotDeck() RETURNS decimal (18,4) AS BEGIN RETURN (SELECT TOP 1 Duration FROM CapitalBikeShare TABLESAMPLE (1000 rows) WHERE Duration >0) END
SELECT StartDate, "TripDuration" = CASE WHEN Duration > 0 THEN Duration ELSE dbo.GetDurHotDeck() END FROM CapitalBikeShare;
SELECT
DATENAME(weekday, StartDate) AS DayofWeek,
AVG(Duration) AS 'AvgDuration'
FROM CapitalBikeShare
WHERE Duration > 0
GROUP BY DATENAME(weekday, StartDate)
ORDER BY AVG(Duration) desc
+-----------+-------------+
| DayofWeek | AvgDuration |
|-----------+-------------|
| Saturday | 1476 |
| Sunday | 1391 |
| Monday | 979 |
| Friday | 957 |
| Thursday | 956 |
| Wednesday | 807 |
| Tuesday | 763 |
+-----------+-------------|
Writing Functions and Stored Procedures in SQL Server