VTL-ML - Aggregate and Analytic operators

The following table lists the operators that can be invoked in the Aggregate or in the Analytic invocations described below and their main characteristics.

Operator

Description

Allowed invocations

Type of resulting Measure

Type of operand Measures

count

number of Data Points

Aggregate Analytic

integer

any

min

minimum value of a set of values

Aggregate Analytic

any

any

max

maximum value of a set of values

Aggregate Analytic

any

any

median

median value of a set of numbers

Aggregate Analytic

number

number

sum

sum of a set of numbers

Aggregate Analytic

number or integer

number

avg

average value of a set of numbers

Aggregate Analytic

number

number

stddev_pop

population standard deviation of a set of numbers

Aggregate Analytic

number

number

stddev_samp

sample standard deviation of a set of numbers

Aggregate Analytic

number

number

var_pop

population variance of a set of numbers

Aggregate Analytic

number

number

var_samp

sample variance of a set of numbers

Aggregate Analytic

number

number

first_value

first value in an ordered set of values

Analytic

any

any

last_value

last value in an ordered set of values

Analytic

any

any

lag

in an ordered set of Data Points it returns the value(s) taken from a Data Point at a given physical offset prior to the current Data Point

Analytic

any

any

lead

in an ordered set of Data Points it returns the value(s) taken from a Data Point at a given physical offset beyond the current Data Point

Analytic

any

any

rank

rank (order number) of a Data Point in an ordered set of Data Points

Analytic

integer

any

ratio_to_report

ratio of a value to the sum of a set of values

Analytic

number

number

The column Type of resulting Measure gives the declared super-type of the measure produced by the invocation. The type integer is a subtype of number (see the User Manual). For numeric operators, engines should also document the nominal result type when all operand values are integer:

  • count, rank: result is integer.

  • min, max: result has the same numeric type as the operand (integer or number).

  • sum: result is declared number; when all summed values are integer, the nominal result may remain integer (integer arithmetic, subject to an overflow policy defined by the implementation).

  • avg, median, var_*, stddev_*, ratio_to_report: result is number even when operands are integer.

If any operand measure is number (non-integer), or the operator is not closed on integers, the nominal result is number.