Applies to: CELONIS 4.0 CELONIS 4.2 CELONIS 4.3 CELONIS 4.4 CELONIS 4.5 CELONIS 4.6
Description
Calculates the average of the specified column for each element of the given child table.
Like the regular AVG operator, the column can either be an INT or FLOAT column. The data type of the result is always a FLOAT (Since: CELONIS 4.5).
If no value in the parent table exists for the element in the child table (either because all values of the parent table column are filtered out, or because no corresponding value exists in the first place), NULL will be returned.
Syntax
PU_AVG ( child_table, parent_table.column [, filter_expression] )
PU_AVG ( DOMAIN_TABLE ( column1,...,columnN ), parent_table.column [, filter_expression] )
Examples
[1] Calculate the average of the case table values for each company code:
Query
Column1
"companyDetail"."companyCode"
Column2
PU_AVG("companyDetail", "caseTable"."value")
[2] PU functions can be used in a FILTER.
In this example, the company codes are filtered such that the corresponding average case table value is smaller than 300:
Query
Filter
FILTER PU_AVG ( "companyDetail", "caseTable"."value" ) < 300
Column1
"companyDetail"."companyCode"
[3] PU functions can be used inside another aggregation function.
In this example, the maximum value of all
average case table values for each company code is calculated:
Query
Column1
MAX ( PU_AVG ( "companyDetail", "caseTable"."value" ) )
[4] Calculate the average of the case table values for each company code. Only consider cases with an ID larger than 2:
Query
Column1
"companyDetail"."companyCode"
Column2
PU_AVG("companyDetail", "caseTable"."value", "caseTable"."caseID" > 2)
[5] Calculate the sum of the case table values for each company code. Only consider cases with an ID larger than 3.
All case table values for companyCode '001' are filtered out, which means that in this case, NULL is returned.
Query
Column1
"companyDetail"."companyCode"
Column2
PU_AVG("companyDetail", "caseTable"."value", "caseTable"."caseID" > 3)
[6] Example over three tables: For each entry in table B, calculate the average of the values that are larger than 100 in table C.
Tables B and C do not have a direct connection, but are connected via table A:
Query
Column1
"B"."B_KEY"
Column2
PU_AVG("B", "C"."VALUE", "C"."VALUE" >100)
[7] For each case ID, calculate the average of the case table values for the associated company code using
DOMAIN_TABLE
:
Query
Column1
"caseTable"."caseId"
Column2
PU_AVG(DOMAIN_TABLE("caseTable"."companyCode"), "caseTable"."value")