20. SELECT OrderID, CustomerID,
FIRST_VALUE(OrderID) OVER(PARTITION BY CustomerID ORDER BY OrderID
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS FirstOrderID
FROM dbo.Orders
WHERE CustomerID IN (1,2)
21. SELECT OrderID, CustomerID,
LAST_VALUE(OrderID) OVER(PARTITION BY CustomerID ORDER BY OrderID
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
AS FirstOrderID
FROM dbo.Orders
WHERE CustomerID IN (1,2)
22.
23. SELECT st1.[Date], st1.TicketCount,
RunningTotal = SUM(st2.TicketCount)
FROM dbo.SpeedingTickets AS st1
INNER JOIN dbo.SpeedingTickets AS st2
ON st2.[Date] <= st1.[Date]
GROUP BY st1.[Date], st1.TicketCount
ORDER BY st1.[Date];
From Aaron Bertrand
24. SELECT [Date], TicketCount,
RunningTotal = TicketCount +
COALESCE(( SELECT SUM(TicketCount)
FROM dbo.SpeedingTickets AS s
WHERE s.[Date] < o.[Date]), 0 )
FROM dbo.SpeedingTickets AS o
ORDER BY [Date];