SQL++ - Window Functions

Summary:Window functions are used to compute cumulative, moving, and reporting aggregations.

Window functions are used to compute an aggregate or cumulative value, based on a group of objects. The objects are not grouped into a single output object — each object remains separate in the query output.

All window functions must have a window definition. This divides the query result set into one or more partitions, and specifies the order of objects in those partitions. Within each partition, a movable window frame is defined for every input object. The window frame determines the objects to be used by the window function.

The OVER clause specifies the window definition. Some window functions take additional window options, which are specified by further clauses before the OVER clause.

N1QL has a dedicated set of window functions. Here is the whole list of supported functions.


Here is an example of using RANK()

It returns the rank of the current object – that is, the number of distinct objects preceding this object in the current window partition, plus one.

The objects are ordered by the window order clause. If any objects are tied, they will have the same rank.

When any objects have the same rank, the rank of the next object will include all preceding objects, so there may be a gap in the sequence of returned values. For example, if there are three objects ranked 2, the next rank is 5.

To run this example, click the button in the top right corner of the code editor.

Code Editor