By the end of this chapter you will be able to:
- Set up aggregate attributes on pipes
- Read aggregate attributes from pipes into a Stream
In this exercise you will create a report of total and average last billed amounts, aggregated by Region:
- In your model, add a new Stream:
- Hover over Customers in England, and press - Add a new Stream
- Give the new Stream the Name: Customer Summary by Region
- Double-click on the new pipe to open the details form
- Go to the tab Sort/Group:
- Drag the Attribute Region from the left-hand box into the list of sorting/ grouping attributes
- Go to the Aggregate Attributes tab:
- Press to add a new aggregate attribute
- In the new aggregate attribute form:
- Set the Aggregate Function to Count
- Leave the Attribute blank
- Set the New Attribute Name to CountRecords
- Press
- Add another aggregate attribute: press - Show the list of Attributes
- Drag the attribute BILLAMOUNT into the aggregate attributes list
Note that this already uses the attribute function Sum – leave this as it is
-
- Update the name of the aggregate value:
- Double-click on the new aggregate attribute
- Update the New Attribute Name to TotalLastBillAmount
- Press
- Add another aggregate attribute: press - Show the list of Attributes
- Drag the attribute BILLAMOUNT into the aggregate attributes list
- Update the details for this new aggregate attribute:
- Double-click on it
- Update the Aggregate Function to Average
- Update the New Attribute Name to AvgLastBillAmount
- Press
- Update the name of the aggregate value:
Now you need to configure your output Stream:
- Drag the Attribute Region from the Sort/Group tab of the pipe onto the Stream Customer Summary by Region
- Drag the aggregate attributes you added from the Aggregate Attributes tab of the pipe onto the Stream Customer Summary by Region
- In the main pipe configuration form, press
Remember to save your model layout.
- Run Analysis on Customer Summary by Region
- Have a look at the data in this Stream – check that the aggregated report has been generated correctly