public interface OrderedAggregateFunction<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
:
The above function groups books by author and aggregates titles
into a concatenated string.
SELECT LISTAGG(TITLE, ', ')
WITHIN GROUP (ORDER BY TITLE)
FROM T_BOOK
GROUP BY AUTHOR_ID
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
-
Method Summary
Modifier and TypeMethodDescription@NotNull AggregateFilterStep<T>
withinGroupOrderBy(Collection<? extends OrderField<?>> fields)
Add anWITHIN GROUP (ORDER BY ..)
clause to the ordered aggregate function@NotNull AggregateFilterStep<T>
withinGroupOrderBy(OrderField<?>... fields)
Add anWITHIN GROUP (ORDER BY ..)
clause to the ordered aggregate function
-
Method Details
-
withinGroupOrderBy
@NotNull @Support({AURORA_MYSQL,AURORA_POSTGRES,BIGQUERY,COCKROACHDB,CUBRID,DB2,EXASOL,H2,HANA,HSQLDB,MARIADB,MEMSQL,MYSQL,ORACLE11G,POSTGRES,REDSHIFT,SNOWFLAKE,SQLDATAWAREHOUSE,SQLSERVER2012,SYBASE,TERADATA}) @NotNull AggregateFilterStep<T> withinGroupOrderBy(OrderField<?>... fields)Add anWITHIN GROUP (ORDER BY ..)
clause to the ordered aggregate function -
withinGroupOrderBy
@NotNull @Support({AURORA_MYSQL,AURORA_POSTGRES,BIGQUERY,COCKROACHDB,CUBRID,DB2,EXASOL,H2,HANA,HSQLDB,MARIADB,MEMSQL,MYSQL,ORACLE11G,POSTGRES,REDSHIFT,SNOWFLAKE,SQLDATAWAREHOUSE,SQLSERVER2012,SYBASE,TERADATA}) @NotNull AggregateFilterStep<T> withinGroupOrderBy(Collection<? extends OrderField<?>> fields)Add anWITHIN GROUP (ORDER BY ..)
clause to the ordered aggregate function
-