Class ApproxPercentileAccumulator
java.lang.Object
dev.frostlake.functions.aggregate.ApproxPercentileAccumulator
- All Implemented Interfaces:
AggregateFunction.Accumulator
Accumulator for APPROX_PERCENTILE(expr, percentile). Snowflake computes an approximate percentile
from a t-digest sketch; this emulator computes the exact interpolated percentile (identical to
PERCENTILE_CONT), which is the best possible approximation and matches Snowflake within its documented
error bound for typical data. The percentile (a constant in [0, 1]) is supplied by the executor from the
function's second argument via
setPercentile(double).-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaccumulate(Object value) Folds one row's argument value into the running state.The aggregate's result over everything accumulated so far.voidFolds another accumulator's state into this one, combining two partial aggregations of the same group.voidreset()Clears the state back to the empty-group starting point so the accumulator can be reused.voidsetPercentile(double percentile)
-
Constructor Details
-
ApproxPercentileAccumulator
public ApproxPercentileAccumulator()
-
-
Method Details
-
setPercentile
public void setPercentile(double percentile) -
accumulate
Description copied from interface:AggregateFunction.AccumulatorFolds one row's argument value into the running state.- Specified by:
accumulatein interfaceAggregateFunction.Accumulator- Parameters:
value- the aggregate argument's value for one row; SQL NULL arrives asnull
-
getResult
Description copied from interface:AggregateFunction.AccumulatorThe aggregate's result over everything accumulated so far.- Specified by:
getResultin interfaceAggregateFunction.Accumulator- Returns:
- the group's result, or
nullwhere the aggregate defines an empty group as NULL
-
reset
public void reset()Description copied from interface:AggregateFunction.AccumulatorClears the state back to the empty-group starting point so the accumulator can be reused.- Specified by:
resetin interfaceAggregateFunction.Accumulator
-
merge
Description copied from interface:AggregateFunction.AccumulatorFolds another accumulator's state into this one, combining two partial aggregations of the same group.- Specified by:
mergein interfaceAggregateFunction.Accumulator- Parameters:
other- a partial state of the same aggregate implementation
-