One Per Aggregations in PeopleStage are useful when you want to campaign to a Person level but output transactional fields. For example, in our Holidays demo data, we have a Bookings table which is transactional to the Person table. We might want to output information such as the Date of the First Booking, the Destination of the 2nd Booking, the Last Booking Date, the Cost of the most recent Booking etc.
All of these could be produced as on-the-fly aggregations in FastStats.
An alternative approach is for an administrator to pre-configure one-per-aggregations within PeopleStage. When these have been configured, if a user drags and drops a transactional variable onto a Content step then the user can choose between the pre-configured one-per aggregations.
To configure these you need to have the Campaign Channel Editor role applied.
Log into PeopleStage as a user who has access to the Editor menus.
From the File menu choose Administration > One Per Aggregations Editor
Click New aggregation
Give the aggregation a suitable Description e.g. 'First Booking', 'Last Booking', 'Second Booking' etc.
For the Variable dropdown choose the variable which is used for ordering the transactions (this will be Booking Date in our example)
Set the Sort to Ascending or Descending (if we want the First 1 then we need Ascending)
Set the Select to be the number of the transaction that we need (e.g. 1 for the earliest transaction, 2 for the 2nd one etc. (ascending) of 1 for the latest, 2 for the 2nd latest (descending))

The above example shows the first booking.
This example below shows the last booking aggregation:

Click
Save to save the aggregation
The defined list of one-per aggregations will be shown:

You can use the
Edit buttons to edit any existing aggregations.
When aggregations have been defined, if a user drags on a transactional variable onto a content step then the aggregations will be offered.
The example below shows the Destination variable being added to the Content step.
This is on the Bookings table and so is a transactional variable.
The user gets the option to choose one of the aggregations in order to pick either the 1st booking, 2nd booking or last booking.
You can then drag on transactional level selections onto the All Bookings table in order to filter the aggregation.
As an example, let's say I want to return the first booking to Germany.
I could create a transactional selection on the Bookings table of Destination = Germany and save this as 'German Bookings', say.
I could then refresh the PeopleStage library and drag this Bookings-level selection in place of the All Bookings.
All we would then need to do is choose the pre-defined First Booking one-per aggregation.

The above example shows the variable Booking Date has been dropped onto the Content step.
The aggregation of 'First Booking' as been applied but it has been filtered to German Bookings so this will return the date of the first Booking to Germany.