Applies to:  CELONIS 4.0 CELONIS 4.2 CELONIS 4.3 CELONIS 4.4 CELONIS 4.5 CELONIS 4.6 

Description

Calculates the number of elements in the specified column for each element of the given child table.

PU_COUNT can be applied on any data type. The data type of the result is always an INT.

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), 0 will be returned.

Syntax

PU_COUNT ( child_table, parent_table.column [, filter_expression] )
PU_COUNT ( DOMAIN_TABLE ( column1,...,columnN ), parent_table.column [, filter_expression] )

Examples


[1] Count the number of cases for each company code:

Query
Column1
"companyDetail"."companyCode"
Column2
PU_COUNT("companyDetail", "caseTable"."companyCode")
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'
3
'002'
2
'003'
1



[2] PU functions can be used in a FILTER. In this example, the company codes are filtered such that the corresponding number of case table values is smaller than 2:

Query
Filter
FILTER PU_COUNT ( "companyDetail", "caseTable"."value" ) < 2
Column1
"companyDetail"."companyCode"
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 : STRING
'003'



[3] PU functions can be used inside another aggregation function. In this example, the maximum value of all number of case table values for each company code is calculated:

Query
Column1
MAX ( PU_COUNT ( "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 : INT
3



[4] Count the number of cases which have a value larger than 300 for each company code. All case table values for company codes '002' and '003' are filtered out, which means that in these cases, 0 is returned.

Query
Column1
"companyDetail"."companyCode"
Column2
PU_COUNT("companyDetail", "caseTable"."companyCode", "caseTable"."value" > 300 )
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'
2
'002'
0
'003'
0



[5] Example over three tables: For each entry in table B, count the number of values that are less than 300 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_COUNT("B", "C"."VALUE", "C"."VALUE" < 300)
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
3
2
1



[6] For each case ID, calculate the number of times the associated company code is contained in the table using DOMAIN_TABLE:

Query
Column1
"caseTable"."caseId"
Column2
PU_COUNT(DOMAIN_TABLE("caseTable"."companyCode"), "caseTable"."companyCode")
Input
caseTable
caseId : INTcompanyCode : STRINGvalue : INT
1
'001'
600
2
'001'
400
3
'001'
200
4
'002'
300
5
'002'
300
6
'003'
200
Output
Result
Column1 : INTColumn2 : INT
1
3
2
3
3
3
4
2
5
2
6
1


  • No labels