From time to time Oracle seems to be limited in aggregate functions. However Oracle delivers possibility to create own aggregate function using built-in framework ODCIAggregate routines
Each of the four ODCIAggregate routines required to define a user-defined aggregate function codifies one of the internal operations that any aggregate function performs, namely:
- Initialize – ODCIAggregateInitialize – initialize the computation of the user-defined aggregate
- Iterate – ODCIAggregateIterate – calculates aggregations
- Merge – ODCIAggregateMerge – combines aggregation iterations
- Terminate – ODCIAggregateTerminate – retuns aggregation value

