Use group by fields to define how to group data for aggregate expressions. Configure group by fields on the Group By tab of the Properties panel.
To define a group for the aggregate expression, select the appropriate input, input/output, and output fields in the Aggregator transformation. You can select multiple group by fields to create a new group for each unique combination. Data Integration then performs the defined aggregation for each group.
When you group values, Data Integration produces one row for each group. If you do not group values, Data Integration returns one row for all input rows.
If the Aggregator transformation runs on an advanced cluster and the input and output fields aren't grouped by field, the transformation might not return the last row of each group with the result of the aggregation.
When you select multiple group by fields in the Aggregator transformation, Data Integration uses field order to determine the order by which it groups. The group order can affect the results. Order the group by fields to ensure the appropriate grouping. You can change the field order after you select the fields in the group.
For example, you create aggregate fields called TOTAL_QTY and TOTAL_PRICE to store the total quantity and total price for each item by store. You define the following expressions for each field:
•TOTAL_QTY: SUM (QTY)
•TOTAL_PRICE: SUM (QTY*PRICE)
You define STORE_ID and ITEM as the group by fields.
The input rows contain the following data:
STORE_ID
ITEM
QTY
PRICE
101
'battery'
3
2.99
101
'battery'
1
3.19
101
'battery'
2
2.59
101
'AAA'
2
2.45
201
'battery'
1
1.99
201
'battery'
4
1.59
301
'battery'
1
2.45
Data Integration performs the aggregate calculations on the following unique groups:
STORE_ID
ITEM
101
'battery'
101
'AAA'
201
'battery'
301
'battery'
Data Integration returns the store ID, item name, total quantity for each item by store, and total price for each item by store: