Class MaxBy
java.lang.Object
dev.frostlake.functions.BuiltInFunction
dev.frostlake.functions.AggregateFunction
dev.frostlake.functions.aggregate.MaxBy
MAX_BY(value, sort_key) — a two-argument aggregate returning the
value from the row whose
sort_key is the maximum. Rows with a NULL sort key are ignored; on ties the latest such row wins
(Snowflake semantics). The returned value may itself be NULL, and NULL only signals "no qualifying
row" when the group is empty or every sort key is NULL.-
Nested Class Summary
Nested classes/interfaces inherited from class dev.frostlake.functions.AggregateFunction
AggregateFunction.Accumulator -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionCreates the fresh, empty per-group state for one evaluation of this aggregate; the executor makes one per group (or per window partition) and never shares them.Computes the function's result over its already-evaluated argument values.geoRejection(int position) Neither half takes a GEOSPATIAL value, where both take an OBJECT.intThe most arguments a call to this function may pass;Integer.MAX_VALUEmarks a variadic function (seeBuiltInFunction.isVariadic()).intThe fewest arguments a call to this function may pass; fewer is an argument-count error.Methods inherited from class dev.frostlake.functions.BuiltInFunction
approximateRejection, binaryRejection, booleanRejection, evaluate, fileRejection, getName, getReturnType, isVariadic, refusesMissingArgumentsByType, semiStructuredRejection, structuredRejection, temporalRejection, temporalRejection, temporalRejection, textRejection, uuidRejection, vectorRejection
-
Constructor Details
-
MaxBy
public MaxBy()
-
-
Method Details
-
createAccumulator
Description copied from class:AggregateFunctionCreates the fresh, empty per-group state for one evaluation of this aggregate; the executor makes one per group (or per window partition) and never shares them.- Specified by:
createAccumulatorin classAggregateFunction- Returns:
- a new accumulator starting from this aggregate's empty-group state
-
geoRejection
Neither half takes a GEOSPATIAL value, where both take an OBJECT. Live,MAX_BY(o, n)returns the object whileMAX_BY(g, n)is "Invalid argument types for function 'MAX_BY': (GEOGRAPHY, NUMBER(38,0))" andMIN_BY(n, g)names the SORT-KEY half — so the answer is the same for every position rather than only the value one.- Overrides:
geoRejectionin classBuiltInFunction- Parameters:
position- the zero-based argument position being asked about- Returns:
- the refusal this position gives a GEOGRAPHY or GEOMETRY value; by default, the union of the two semi-structured answers
-
evaluate
Description copied from class:BuiltInFunctionComputes the function's result over its already-evaluated argument values. A SQL NULL argument arrives as Javanull, and returningnullmakes the SQL result NULL.- Specified by:
evaluatein classBuiltInFunction- Parameters:
args- the argument values, in call order- Returns:
- the function's value for these arguments, or
nullfor SQL NULL
-
getMinArgCount
public int getMinArgCount()Description copied from class:BuiltInFunctionThe fewest arguments a call to this function may pass; fewer is an argument-count error.- Specified by:
getMinArgCountin classBuiltInFunction- Returns:
- the minimum accepted argument count
-
getMaxArgCount
public int getMaxArgCount()Description copied from class:BuiltInFunctionThe most arguments a call to this function may pass;Integer.MAX_VALUEmarks a variadic function (seeBuiltInFunction.isVariadic()).- Specified by:
getMaxArgCountin classBuiltInFunction- Returns:
- the maximum accepted argument count
-