Hugo Kornelis continues a series on explaining the execution plans for window functions:
This is part twenty-six of the plansplaining series. And already the fourth episode about window functions. The first of those posts covered basic window functions; the second post focused on fast-track optimization for running aggregates, and the third post explained how the optimizer works around the lack of execution plan support for UNBOUNDED FOLLOWING.
But all of those were about OVER specifications that use the ROWS keyword. Let’s now look at the alternative, the RANGE keyword.
Click through to see how the various options work with RANGE
. By the way, I still want range intervals, like how Postgres implements them, where you can define an interval of X days/hours/minutes/whatever rather than a specific number of rows. Maybe one of these versions…