Group Aggregate Java SequenceIterator Methods

The Group Aggregate Java SequenceIterator methods (except groupAggWavg() and groupAggCount()) take an input groupBy sequence argument and produce a result sequence containing the calculated aggregate for each group. The object's sequence is split into groups based on the values in the groupBy sequence which is expected to be ordered.

SequenceIterator groupAggCount() Returns a sequence with the count of the number of elements in each group
SequenceIterator groupAggMax(SequenceIterator groupBy) Returns a sequence with the maximum value for each group of elements
SequenceIterator groupAggMin(SequenceIterator groupBy) Returns a sequence with the minimum value for each group of elements
SequenceIterator groupAggFirst(SequenceIterator groupBy) Returns a sequence with the first element of each group
SequenceIterator groupAggLast(SequenceIterator groupBy) Returns a sequence with the last element of each group
SequenceIterator groupAggSum(SequenceIterator groupBy) Returns a sequence with the sum of each group of elements
SequenceIterator groupAggAvg(SequenceIterator groupBy) Returns a sequence with the average of each group of elements
SequenceIterator groupAggVar(SequenceIterator groupBy) Returns a sequence with the variance of each group of elements
SequenceIterator groupAggVarSamp(SequenceIterator groupBy) Returns a sequence with the sample variance of each group of elements
SequenceIterator groupAggDev(SequenceIterator groupBy) Returns a sequence with the Standard Deviation of each group of elements
SequenceIterator groupAggDevSamp(SequenceIterator groupBy) Returns a sequence with the Sample Standard Deviation of each group of elements
SequenceIterator groupAggApproxDC(SequenceIterator groupBy) Returns a sequence with the approximate count of distinct values for each group
SequenceIterator groupAggApproxHashDC(SequenceIterator groupBy)

Returns a sequence with the approximate count of distinct values for each group for multiple sequences. Whereas groupAggApproxDC() returns the approximate distinct count for each group of a single sequence, groupAggApproxHashDC() returns the approximate distinct count for multiple sequences

SequenceIterator groupAggWavg(SequenceIterator weight, SequenceIterator groupBy)

Returns the double result sequence with the weighted average for each group

Example

Following is an example code snippet demonstrating a group aggregate function:

         
    Cursor<Quote> cursor = new Cursor<Quote>(con, Quote.class, "symbol");
    for (Quote quote : cursor) 
    {
    }
    public static void groupByAggregate(Connection con)
    {
        con.startTransaction(Database.TransactionType.ReadOnly);
         
        Cursor<Quote> cursor = new Cursor<Quote>(con, Quote.class, "symbol");
        for (Quote quote : cursor) 
        {
            // Select interval
            SequenceIterator dayIterator = quote.day.search(20130101, OrderedSequence.Boundary.Inclusive, 
                                        20140101, OrderedSequence.Boundary.Exclusive);
            SequenceIterator groupBy = dayIterator.div(SequenceIterator.constant(100, Sequence.Type.UInt4));
            SequenceIterator groupSum = quote.volume.project(dayIterator).groupAggSum(groupBy);
            ...
        }
        con.commitTransaction();
    }