分组聚合函数
该组聚合 Java 序列迭代器方法(除了 groupAggWavg() 和 groupAggCount() 之外)接受一个输入的 groupBy 序列参数,并生成一个结果序列,其中包含每个组的计算聚合值。对象的序列会根据 groupBy 序列中的值进行分组,该序列应是有序的。
SequenceIterator groupAggCount():返回一个序列,其中包含每个组中的元素数量
SequenceIterator groupAggMax(SequenceIterator groupBy):返回一个序列,其中包含每个元素组的最大值
SequenceIterator groupAggMin(SequenceIterator groupBy):返回一个序列,其中包含每个元素组的最小值
SequenceIterator groupAggFirst(SequenceIterator groupBy):返回一个序列,其中包含每个组的第一个元素
SequenceIterator groupAggLast(SequenceIterator groupBy):返回一个序列,其中包含每个组的最后一个元素
SequenceIterator groupAggSum(SequenceIterator groupBy):返回一个序列,其中包含每个元素组的总和
SequenceIterator groupAggAvg(SequenceIterator groupBy):返回一个序列,其中包含每个元素组的平均值
SequenceIterator groupAggVar(SequenceIterator groupBy):返回一个序列,其中包含每个元素组的方差
SequenceIterator groupAggVarSamp(SequenceIterator groupBy):返回一个序列,其中包含每个元素组的样本方差
SequenceIterator groupAggDev(SequenceIterator groupBy):返回一个序列,其中包含每个元素组的标准差
SequenceIterator groupAggDevSamp(SequenceIterator groupBy):返回一个序列,其中包含每个元素组的样本标准差
SequenceIterator groupAggApproxDC(SequenceIterator groupBy):返回一个序列,其中包含每个组的近似不同值计数
SequenceIterator groupAggApproxHashDC(SequenceIterator groupBy):返回一个序列,其中包含多个序列中每个组的近似不同值计数。与 groupAggApproxDC() 仅返回单个序列中每个组的近似不同计数不同,groupAggApproxHashDC() 返回多个序列的近似不同计数
SequenceIterator groupAggWavg(SequenceIterator weight, SequenceIterator groupBy):返回一个双精度结果序列,其中包含每个组的加权平均值
示例
以下是一个展示组聚合函数的示例代码片段:
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();
}