Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Applies to:  

Status
colourGreen
titleCelonis 4.0
 
Status
colourGreen
titleCelonis 4.2
 
Status
colourGreen
titleCelonis 4.3
 
Status
colourGreen
titleCelonis 4.4
 

Description

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

Like the regular QUANTILE 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. The given quantile has to be a float number between 0 (same as PU_MIN) and 1.0 (same as PU_MAX).

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


Code Block
languagetext
themeDJango
PU_QUANTILE ( parent_table, child_table.column, quantile [, filter_expression] )


Examples

Calculate the 0.0 quantile of the case table values for each company code. This produces the same result as PU_MIN since QUANTILE(0.0) == MIN():


Panel
titleQuery
Column1


Code Block
languagetext
themeDJango
"companyDetail"."companyCode"


Column2


Code Block
languagetext
themeDJango
PU_QUANTILE("companyDetail", "caseTable"."value", 0.0)




Panel
titleInput
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




Panel
titleOutput
Result


Column1 : STRINGColumn2 : INT
'001'
200
'002'
300
'003'
200






Calculate the 1.0 quantile of the case table values for each company code. This produces the same result as PU_MAX since QUANTILE(1.0) == MAX():


Panel
titleQuery
Column1


Code Block
languagetext
themeDJango
"companyDetail"."companyCode"


Column2


Code Block
languagetext
themeDJango
PU_QUANTILE("companyDetail", "caseTable"."value", 1.0)




Panel
titleInput
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




Panel
titleOutput
Result


Column1 : STRINGColumn2 : INT
'001'
600
'002'
300
'003'
200






Calculate the 0.5 quantile of the case table values for each company code. This produces the same result as PU_MEDIAN since QUANTILE(0.5) == MEDIAN():


Panel
titleQuery
Column1


Code Block
languagetext
themeDJango
"companyDetail"."companyCode"


Column2


Code Block
languagetext
themeDJango
PU_QUANTILE("companyDetail", "caseTable"."value", 0.5)




Panel
titleInput
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




Panel
titleOutput
Result


Column1 : STRINGColumn2 : INT
'001'
400
'002'
300
'003'
200






Calculate the 0.5 quantile of the case table values for each company code. Only consider cases with an ID larger than 2. This produces the same result as PU_MEDIAN since QUANTILE(0.5) == MEDIAN():


Panel
titleQuery
Column1


Code Block
languagetext
themeDJango
"companyDetail"."companyCode"


Column2


Code Block
languagetext
themeDJango
PU_QUANTILE("companyDetail", "caseTable"."value", 0.5, "caseTable"."caseID" > 2)




Panel
titleInput
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




Panel
titleOutput
Result


Column1 : STRINGColumn2 : INT
'001'
200
'002'
300
'003'
200






Calculate the 0.5 quantile 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. This produces the same result as PU_MEDIAN since QUANTILE(0.5) == MEDIAN():


Panel
titleQuery
Column1


Code Block
languagetext
themeDJango
"companyDetail"."companyCode"


Column2


Code Block
languagetext
themeDJango
PU_QUANTILE("companyDetail", "caseTable"."value", 0.5, "caseTable"."caseID" > 3)




Panel
titleInput
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




Panel
titleOutput
Result


Column1 : STRINGColumn2 : INT
'001'
null
'002'
300
'003'
200






Calculate the 0.25 quantile of the case table values for each company code:


Panel
titleQuery
Column1


Code Block
languagetext
themeDJango
"companyDetail"."companyCode"


Column2


Code Block
languagetext
themeDJango
PU_QUANTILE("companyDetail", "caseTable"."value", 0.25)




Panel
titleInput
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




Panel
titleOutput
Result


Column1 : STRINGColumn2 : INT
'001'
200
'002'
300
'003'
200






Example over three tables: For each entry in table B, calculate the 0.5 quantile of the values that are larger than 100 in table C. This produces the same result as PU_MEDIAN since QUANTILE(0.5) == MEDIAN(): Tables B and C do not have a direct connection, but are connected via table A:


Panel
titleQuery
Column1


Code Block
languagetext
themeDJango
"B"."B_KEY"


Column2


Code Block
languagetext
themeDJango
PU_QUANTILE("B", "C"."VALUE", 0.5, "C"."VALUE" >100)




Panel
titleInput
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




Panel
titleOutput
Result


Column1 : INTColumn2 : INT
1
400
2
500