You really haven't provided sufficient details to propose a method to definitively satisfy your requirements but here is a limited method using a collection as an example showing the individual steps which you could use.
The first two lines are used to create the collection structure to be used in the ForAll
ClearCollect( NewCity,
{ City: "Milan", Country: "Italy", Population: 1344000, DateCreated: DateTimeValue("10/11/2014 9:50:24.765 PM")}
);
ClearCollect( NewCityGrouped, GroupBy( NewCity, Country, Cities ) );
ClearCollect( CityPopulations,
{ City: "London", Country: "United Kingdom", Population: 8615000, DateCreated: DateTimeValue("10/11/2014 1:50:24.765 PM")},
{ City: "Berlin", Country: "Germany", Population: 3562000, DateCreated: DateTimeValue("10/11/2014 2:50:24.765 PM")},
{ City: "Madrid", Country: "Spain", Population: 3165000, DateCreated: DateTimeValue("10/11/2014 3:50:24.765 PM")},
{ City: "Rome", Country: "Italy", Population: 2874000, DateCreated: DateTimeValue("10/11/2014 4:50:24.765 PM")},
{ City: "Paris", Country: "France", Population: 2273000, DateCreated: DateTimeValue("10/11/2014 5:50:24.765 PM")},
{ City: "Hamburg", Country: "Germany", Population: 1760000, DateCreated: DateTimeValue("10/11/2014 6:50:24.765 PM")},
{ City: "Barcelona", Country: "Spain", Population: 1602000, DateCreated: DateTimeValue("10/11/2014 7:50:24.765 PM")},
{ City: "Munich", Country: "Germany", Population: 1494000, DateCreated: DateTimeValue("10/11/2014 7:50:24.765 PM")},
{ City: "Milan", Country: "Italy", Population: 1344000, DateCreated: DateTimeValue("10/11/2014 9:50:24.765 PM")}
);
ClearCollect( CitiesByCountry, GroupBy( CityPopulations, Country, Cities ) );
Clear(NewCityGrouped);
ForAll(CitiesByCountry, Collect(NewCityGrouped, {Country: Country, Cities: Table(First(Sort(Cities,DateCreated)))}));
ClearCollect( NewCityGroupedUngrouped, Ungroup( NewCityGrouped, Cities ) );