I have a love-hate relationship with the window functions in SQL. I love how it allows one access to data from rows beyond the current row as it simplifies the tasks like creating rolling averages or ranking values within a group. I hate it when I have to write a complicated query involving the usage of window functions along with joins, subqueries, CTEs, etc. But I learned a new detail recently about window functions that made me gasp and admire it. To understand it, let us consider the task of creating a 3-day rolling average on a numeric column. This task requires data from the current row and the preceding two rows. Hence, it is a no-brainer to use window functions here. The usual syntax of the window function for averaging is as below: AVG() OVER () This window function considers the value of the current row and the value of all the preceding rows to calculate and display the average. (Let us overlook the functionalities of PARTITION BY and ORDER BY clauses for a while.) But, to
"A wild adventure to reach the peak of the bell curve"
Comments
Post a Comment