Insert excerpt | ||||||||
---|---|---|---|---|---|---|---|---|
|
Introduction
Counting values is very useful for generating statistics within your models and there is functionality within PhixFlow to help us you achieve this.
Simple Count
We can generate counts of particular attributes using a View. This means we do not need to edit the source data only how is is displayed.
Example
We have a set of company details and we want to see how many time times a company name appears in the list.
Solution
- Open the properties of the table holding the company data.
- Create a new view, this will be used to display our count:
- Set the Name e.g. Company Counter.
- Set the Display Type to
Grid
. - Sort order Order and Filters are Optional optional for our example. See View for more details on setting these.
- In View Attributes click
Insert excerpt _attributes_show_hide _attributes_show_hide nopanel true - From the popup box that appears, drag in the name of the company Company into the View Attributes section:
- Double-click this View Attribute to open its properties .Change the and set:
Name to
Count
or something useful.Note It must be changed as we will be adding the name again later for display purposes and we cannot have two attributes with the same name.
- Aggregate Function to
Count
.
- Save all your changes.
- This will produce a count based on the other attributes in the view. Now add
- With the settings so far, PhixFlow will count how many names there are.
- Add the name of the company to the view. PhixFlow now counts how many occurrences there are of each name.
There are other useful Aggregate Functions aggregate functions available that we can use to generate other different metrics n in our viewviews, see View Attribute for more detail details on these.
Bespoke Counts
Where we need to generate more complex counts such as the total sum of invoices by year, we need to create additional attributes to hold the information that will be aggregated on.
Example
If we have invoice information:
From this information we would like to generate the sum of all invoices by year.
Solution
- Create a new attribute on the table containing the Invoice information.
- Name the attribute
Year
. - Set Type to
Integer
. - Set the expression to:
dateGet(_out.InvoiceDate, _YEAR)
This statement will extract a year from a date attribute, see dateGet. - Save your changes.
- Name the attribute
- Rerun Analysis on your Table and the new attribute will be populated.
- Create a new View on your table
- Set Name to
Invoice by Year
or something suitable. - Set Display Type to
Grid
. - You may wish to set a Sort Order by year, this is optional.
- In View Attributes click
Insert excerpt _attributes_show_hide _attributes_show_hide nopanel true - Add in the attribute that contains the invoice amount and the new Year attribute.
Double-click the Amount amount attribute to open its properties and set the Aggregate Function toSum
. This will sum all the amounts by year. - Save your changes.
- Set Name to
- In the Table right-click the view we just created created and select View Chart.
Tip |
---|
It can often be useful to add a new integer attribute with the value 1 to all records coming in, this this facilitates the ability to quickly get sum totals based on other fields. For example the number of invoices by year or the number of people with the surname "Smith". |