T-SQL Power! Windows That Open Doors Adam
T-SQL POWER! © 2016 Adam Machanic Adam Machanic Consultant Boston, MA and Beyond Speaker PASS, TechEd, Connections … Writer Books, magazines, web sites Founder
T-SQL POWER! © 2016 Adam Machanic Agenda Background Lots of Demos(That’s it.)
T-SQL POWER! © 2016 Adam Machanic Windowing and Framing … … Frames – as many as you need
T-SQL POWER! © 2016 Adam Machanic Framing Rows ROWS BETWEEN 1 PRECEDING AND CURRENT ROW ROWS BETWEEN 3 PRECEDING AND 2 FOLLOWING
T-SQL POWER! © 2016 Adam Machanic Framing Rows ROWS BETWEEN 1 PRECEDING AND CURRENT ROW ROWS BETWEEN 3 PRECEDING AND 2 FOLLOWING
T-SQL POWER! © 2016 Adam Machanic Framing Rows ROWS BETWEEN 1 PRECEDING AND CURRENT ROW ROWS BETWEEN 3 PRECEDING AND 2 FOLLOWING
T-SQL POWER! © 2016 Adam Machanic Framing Rows ROWS BETWEEN 1 PRECEDING AND CURRENT ROW ROWS BETWEEN 3 PRECEDING AND 2 FOLLOWING
T-SQL POWER! © 2016 Adam Machanic Framing Rows ROWS BETWEEN 1 PRECEDING AND CURRENT ROW ROWS BETWEEN 3 PRECEDING AND 2 FOLLOWING
T-SQL POWER! © 2016 Adam Machanic Framing Rows ROWS BETWEEN 1 PRECEDING AND CURRENT ROW ROWS BETWEEN 3 PRECEDING AND 2 FOLLOWING
T-SQL POWER! © 2016 Adam Machanic Framing Rows ROWS BETWEEN 1 PRECEDING AND CURRENT ROW ROWS BETWEEN 3 PRECEDING AND 2 FOLLOWING
T-SQL POWER! © 2016 Adam Machanic Framing Rows ROWS BETWEEN 1 PRECEDING AND CURRENT ROW ROWS BETWEEN 3 PRECEDING AND 2 FOLLOWING
T-SQL POWER! © 2016 Adam Machanic Partitioning and Framing Rows ROWS BETWEEN 1 PRECEDING AND CURRENT ROW ROWS BETWEEN 3 PRECEDING AND 2 FOLLOWING
T-SQL POWER! © 2016 Adam Machanic Partitioning and Framing Rows ROWS BETWEEN 1 PRECEDING AND CURRENT ROW ROWS BETWEEN 3 PRECEDING AND 2 FOLLOWING
T-SQL POWER! © 2016 Adam Machanic Partitioning and Framing Rows ROWS BETWEEN 1 PRECEDING AND CURRENT ROW ROWS BETWEEN 3 PRECEDING AND 2 FOLLOWING
T-SQL POWER! © 2016 Adam Machanic Partitioning and Framing Rows ROWS BETWEEN 1 PRECEDING AND CURRENT ROW ROWS BETWEEN 3 PRECEDING AND 2 FOLLOWING
T-SQL POWER! © 2016 Adam Machanic Partitioning and Framing Rows ROWS BETWEEN 1 PRECEDING AND CURRENT ROW ROWS BETWEEN 3 PRECEDING AND 2 FOLLOWING
T-SQL POWER! © 2016 Adam Machanic Partitioning and Framing Rows ROWS BETWEEN 1 PRECEDING AND CURRENT ROW ROWS BETWEEN 3 PRECEDING AND 2 FOLLOWING
T-SQL POWER! © 2016 Adam Machanic Partitioning and Framing Rows ROWS BETWEEN 1 PRECEDING AND CURRENT ROW ROWS BETWEEN 3 PRECEDING AND 2 FOLLOWING
T-SQL POWER! © 2016 Adam Machanic Partitioning and Framing Rows ROWS BETWEEN 1 PRECEDING AND CURRENT ROW ROWS BETWEEN 3 PRECEDING AND 2 FOLLOWING
T-SQL POWER! © 2016 Adam Machanic Partitioning and Framing Rows ROWS BETWEEN 1 PRECEDING AND CURRENT ROW ROWS BETWEEN 3 PRECEDING AND 2 FOLLOWING
T-SQL POWER! © 2016 Adam Machanic Commonly Used Window Function Types Ranking ROW_NUMBER RANK DENSE_RANK Analytic Offset LAG LEAD Aggregate SUM AVG COUNT MIN MAX Analytic Framed FIRST_VALUE LAST_VALUE
T-SQL POWER! © 2016 Adam Machanic Query Processor Iterators of Interest
T-SQL POWER! WINDOWS THAT OPEN DOORS demo
T-SQL POWER! © 2016 Adam Machanic Summary Window functions make complex T-SQL much easier Performance, on the other hand, is up to you Be creative! There are endless use cases for these features Beware of RANGE mode