Become an expert who can use window functions to solve T-SQL query problems. Replace slow cursors and self-joins with queries that are easy to write and perform better. This new edition provides expanded examples, including a chapter from the world of sports, and covers the latest performance enhancements through SQL Server 2019.
Window functions are useful in analytics and business intelligence reporting. They came into full blossom with SQL Server 2012, yet they are not as well known and used as often as they ought to be. This group of functions is one of the most notable developments in SQL, and this book shows how every developer and DBA can benefit from their expressive power in solving day-to-day business problems. Once you begin using window functions, such as ROW_NUMBER and LAG, you will discover many ways to use them. You will approach SQL Server queries in a different way, thinking about sets of data instead of individual rows. Your queries will run faster, be easier to write, and easier to deconstruct, maintain, and enhance in the future.
Just knowing and using these functions is not enough. You also need to understand how to tune the queries. Expert T-SQL Window Functions in SQL Server clearly explains how to get the best performance. The book also covers the rare cases when older techniques are the best bet.
What You Will Learn
Solve complex query problems without cumbersome self-joins that run slowly and are difficult to read
Create sliding windows in a result set for computing such as running totals and moving averages
Return aggregate and detail data simultaneously from the same SELECT statement
Compute lag and lead and other values that access data from multiple rows in a result set
Understand the OVER clause syntax and how to control the window
Avoid framing errors that can lead to unexpected results
Who This Book Is For
Anyone who writes T-SQL queries, including database administrators, developers, business analysts, and data scientists. Before reading this book, you should understand how to join tables, write WHERE clauses, and build aggregate queries.