views showing only 1 node with specifiec field value
Views is a simple query builder. It is good at building 1 query, or many simple queries. There are times when relying solely on Views, and the assumption that your logic and be easily tailored to Views may fail.

This is such an example where it would benefit you to do some of this work outside of Views itself and store and compute metdata on to more easily generate reports.

For example you could install Nodequeue, Views Bulk Operations and Rules to perform the following tasks:


create a nodequeue for city_fastest_times_results. Create 1 nodequeue per city.
Write a Rule that upon saving of a track time examines if it is the fastest time yet recorded for that city. If so, insert it into the appropriate nodequeue.
Using VBO to reuse the rule you defined in 2 to run this processing on any previously entered data on the website.


note: a SmartQueue may be able to allow you to encode this logic as well, as opposed to Rules.

Instead of Nodequeue you could also use the Relation module to relate cities, runners and times.

So, the nodequeues can store the fastest times per city and self-update based on Rule logic, or occassionaly by an admin using a VBO form. To show a report you would then just have SELECT * FROM {nodequeue_N} ORDER BY time DESC, which is trivial using Views.