Applies to:  CELONIS 4.0 CELONIS 4.2 CELONIS 4.3 CELONIS 4.4 

Description

Calculates the median of the specified column for each element of the given parent table.

The median is the middle element of a group. If the group has an even number of elements, the upper value of the two middle values is taken as the median.

Like the regular MEDIAN operator, the column can either be an INT, FLOAT or DATE column. The data type of the result is the same as the input column data type.

If no value in the child table exists for the element in the parent table (either because all values of the child table column are filtered out, or because no corresponding value exists in the first place), NULL will be returned.

Syntax

PU_MEDIAN ( parent_table, child_table.column [, filter_expression] )

Examples

Calculate the maximum of the case table values for each company code:

Query
Column1
"companyDetail"."companyCode"
Column2
PU_MEDIAN("companyDetail", "caseTable"."value")
Input
caseTable
caseId : INTcompanyCode : STRINGvalue : INT
1
'001'
600
2
'001'
400
3
'001'
200
4
'002'
300
5
'002'
300
6
'003'
200
companyDetail
companyCode : STRINGcountry : STRING
'001''DE'
'002''DE'
'003''US'

Foreign Keys
caseTable.companyCodecompanyDetail.companyCode
Output
Result
Column1 : STRINGColumn2 : INT
'001'
400
'002'
300
'003'
200




Calculate the median of the case table values for each company code. Only consider cases with an ID larger than 2:

Query
Column1
"companyDetail"."companyCode"
Column2
PU_MEDIAN("companyDetail", "caseTable"."value", "caseTable"."caseID" > 2)
Input
caseTable
caseId : INTcompanyCode : STRINGvalue : INT
1
'001'
600
2
'001'
400
3
'001'
200
4
'002'
300
5
'002'
300
6
'003'
200
companyDetail
companyCode : STRINGcountry : STRING
'001''DE'
'002''DE'
'003''US'

Foreign Keys
caseTable.companyCodecompanyDetail.companyCode
Output
Result
Column1 : STRINGColumn2 : INT
'001'
200
'002'
300
'003'
200




Calculate the median 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_MEDIAN("companyDetail", "caseTable"."value", "caseTable"."caseID" > 3)
Input
caseTable
caseId : INTcompanyCode : STRINGvalue : INT
1
'001'
600
2
'001'
400
3
'001'
200
4
'002'
300
5
'002'
300
6
'003'
200
companyDetail
companyCode : STRINGcountry : STRING
'001''DE'
'002''DE'
'003''US'

Foreign Keys
caseTable.companyCodecompanyDetail.companyCode
Output
Result
Column1 : STRINGColumn2 : INT
'001'
null
'002'
300
'003'
200




Example over three tables: For each entry in table B, calculate the median 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_MEDIAN("B", "C"."VALUE", "C"."VALUE" >100)
Input
A
B_KEY : INTC_KEY : STRINGVALUE : INT
1
'A'
100
1
'B'
200
2
'C'
300
2
'D'
400
3
'E'
500
3
'F'
600
B
B_KEY : INT
1
2
C
C_KEY : STRINGVALUE : INT
'A'
400
'A'
100
'A'
200
'B'
100
'C'
200
'D'
500

Foreign Keys
C.C_KEYA.C_KEY
B.B_KEYA.B_KEY
Output
Result
Column1 : INTColumn2 : INT
1
400
2
500




  • No labels