Thanks for attending my session on window functions in TSQL. I hope you learned something you can take back and use in your projects or at your work. You will find an link to the session and code I used below. If you have any questions about the session post them in comments and I will try to get you the answers.
Questions
- Can an OVER clause be used in the WHERE clause?
- No. The OVER clause can only be used in SELECT and ORDER BY clauses.
- Some follow up on ROWS and RANGE with context to CURRENT ROW.
- We had a lot of discussion around this. In our examples below, RANGE aggregated all the data that fit into the ORDER BY clause. ROWS only referenced the row it was in. So, RANGE looks at everything that meets the criteria established by the PARTITION BY and ORDER BY clauses. ROWS is bound to the physical row.
- Code examples:
OVER (PARTITION BY CustomerName ORDER BY OrderDate RANGE CURRENT ROW)
- Summed two rows of data for the customer with the date. Both rows had the same date.
OVER (PARTITION BY CustomerName ORDER BY OrderDate ROWS CURRENT ROW)
- Each row only contained the data for the row it was in.
Slides, Code, and Follow Up Posts
The presentation can be found here: A Window into Your Data
The code was put into a Word document that you can get here: TSQL Window Function Code
This session is also backed by an existing blog series I have written.
T-SQL Window Functions – Part 1- The OVER() Clause
T-SQL Window Functions – Part 2- Ranking Functions
T-SQL Window Functions – Part 3: Aggregate Functions
T-SQL Window Functions – Part 4- Analytic Functions
Microsoft Resources:
- OVER Clause: http://msdn.microsoft.com/en-us/library/ms189461(v=SQL.110).aspx
- Analytic Functions: http://msdn.microsoft.com/en-us/library/hh213234(v=sql.110).aspx