Comparing Window Function Features by Database Vendors

Jiří Mauritz Data Warehouse, Redshift, SQL for Analysis, Window Functions

We will round off the series on window functions with comparison of what database vendors offer. There are various mutations of window functions and every vendor supports a different subset or feature. Some also add extra window functions or features beyond standard ANSI SQL. One of the most powerful features is user-defined aggregate functions (UDAF), which some databases allow using ...

Window Function ROWS and RANGE on Redshift and BigQuery

Jiří Mauritz Data Warehouse, Redshift, Window Functions

Frames in window functions allow us to operate on subsets of the partitions by breaking the partition into even smaller sequences of rows. SQL provides syntax to express very flexible definitions of a frame. We described the syntax in the first post on Window functions and demonstrated some basic use cases in the post on Data Exploration with Window Functions ...

Redshift's Window Functions Advanced use case - Sessionization

Jiří Mauritz Data Warehouse, Redshift, Window Functions

In the last post about the Window Functions, we introduced an advanced use case, in which the window functions help to make the query more readable, simple and efficient. The problem was to find free call intervals for each customer, which are created as customers tops-up their credit for at least €20 and get free calls for the next 28 ...

Redshift Window Functions Advanced Use Cases

Jiří Mauritz Data Warehouse, Redshift, Window Functions

Merging time-based events into periods Thanks to our previous posts about the window functions, Introduction to Window functions on Redshift and Data exploration with Window functions on Redshift, you should now be familiar with the most common functions that can be used in the OVER clause and how to apply them to your data. Today, we introduce more advanced use ...

ODI and analytic functions (again???)

Uli Bethke analytic functions, Oracle Data Integrator (ODI)

My friend and colleague Maciej Kocon has come up with the following trick. Rather than use a user defined function to implement an analytic function such as MAX() OVER or SUM() OVER as suggested by note 807527.1 there is another way to work around the getGrpBy bug. We will take advantage of the ODI multi pass parser and hide the ...