Group aggregate methods calculate one result for each contiguous group in an ordered grouping sequence.
Use them when the
groupBysequence is already ordered, for example after selecting a time range from an ordered sequence such asquote.Day.For an overview see page The C# Sequence Class
Operations
source.GroupAggCount()Counts the number of elements in each ordered group.source.GroupAggMax(Sequence groupBy)Maximum value for each group.source.GroupAggMin(Sequence groupBy)Minimum value for each group.source.GroupAggFirst(Sequence groupBy)First value for each group.source.GroupAggLast(Sequence groupBy)Last value for each group.source.GroupAggSum(Sequence groupBy)Sum for each group.source.GroupAggAvg(Sequence groupBy)Average for each group.source.GroupAggVar(Sequence groupBy)Variance for each group.source.GroupAggVarSamp(Sequence groupBy)Sample variance for each group.source.GroupAggDev(Sequence groupBy)Standard deviation for each group.source.GroupAggDevSamp(Sequence groupBy)Sample standard deviation for each group.source.GroupAggApproxDC(Sequence groupBy)Approximate distinct count for each group.source.GroupAggApproxHashDC(Sequence groupBy)Approximate hash-based distinct count for each group.source.GroupAggWavg(Sequence weight, Sequence groupBy)Weighted average for each group.Example
The seqapi sample groups one year of volume values by month using the ordered day sequence.
using (Sequence dayRange = quote.Day.Search(20130101u, SelectBoundary.Inclusive, 20140101u, SelectBoundary.Exclusive)) using (Sequence groupBy = dayRange / Sequence.Constant(con, 100u)) using (Sequence monthlyVolume = quote.Volume[dayRange].GroupAggSum(groupBy)) { PrintIntSequence(quote, monthlyVolume); }