Module org.jooq
Package org.jooq

Interface OptionallyOrderedAggregateFunction<T>

All Superinterfaces:
AggregateFilterStep<T>, Field<T>, FieldOrConstraint, FieldOrRow, FieldOrRowOrSelect, GroupField, Named, OrderedAggregateFunction<T>, OrderField<T>, QueryPart, SelectField<T>, SelectFieldOrAsterisk, Serializable, TableElement, Typed<T>, WindowBeforeOverStep<T>, WindowOverStep<T>
All Known Subinterfaces:
QOM.MaxBy<T>, QOM.MinBy<T>

public interface OptionallyOrderedAggregateFunction<T> extends OrderedAggregateFunction<T>, AggregateFilterStep<T>
An ordered-set aggregate function.

An ordered-set aggregate function is an aggregate function with a mandatory Oracle-specific WITHIN GROUP (ORDER BY …) clause. An example is LISTAGG:


 SELECT   LISTAGG(TITLE, ', ')
          WITHIN GROUP (ORDER BY TITLE)
 FROM     T_BOOK
 GROUP BY AUTHOR_ID
 
The above function groups books by author and aggregates titles into a concatenated string.

Ordered-set aggregate functions can be further converted into window functions using the OVER(PARTITION BY …) clause. For example:


 SELECT LISTAGG(TITLE, ', ')
        WITHIN GROUP (ORDER BY TITLE)
        OVER (PARTITION BY AUTHOR_ID)
 FROM   T_BOOK
 
Author:
Lukas Eder