g_avg(G;S;X)

Returns the average of values within a given group.

Function type

Vector only

Syntax

g_avg(G;S;X)

Input

Argument Type Description
G any A space- or comma-separated list of column names

Rows are in the same group if their values for all of the columns listed in G are the same.

If G is omitted, all rows are considered to be in the same group.

If any of the columns listed in G contain N/A, the N/A value is considered a valid grouping value.

S integer The name of a column in which every row evaluates to a 1 or 0, which determines whether or not that row is selected to be included in the calculation

If S is omitted, all rows will be considered by the function (subject to any prior row selections).

If any of the values in S are neither 1 nor 0, an error is returned.

X any numeric type A column name

N/As in X are ignored (i.e., the result is the average of non-N/A values).

Return Value

For every row in each group defined by G (and for those rows where S=1, if specified), g_avg returns a decimal value corresponding to the average of the values in the column listed in X that are in the same group as that row.

If all values for a particular group are N/A, the result is N/A.

Sample Usage

<base table="pub.doc.samples.ref.func.g_func_sample_usage"/>
<willbe name="g_avg_1" value="g_avg(state;include;value)"/>
<willbe name="g_avg_2" value="g_avg(state city;include;value)"/>

Example

This example uses the g_avg(G;S;X) function to return the average sales per basket per store. g_avg(G;S;X) can take three parameters, but in this case only the first and last are needed. The function groups the rows based on the transaction ID (transid) for the G parameter and the sales amount (sales) for the X parameter . The sales value is the one that is averaged grouping by the transaction ID.

<base table="pub.demo.retail.item" />
<colord cols="transid,date,store,sales" />
<willbe name="bskt_avg" value="g_avg(transid;;sales)" format="dec:2"/>