In my EF model:

I make this view:

with following LINQ query (with your help):
var query = ctx.data.ToList().OrderBy(d => d.Time).
GroupBy(d => d.Members.StepId).
SelectMany(g => g.Select((d, place) => new { Time = d.Time, Members = d.Members, PlaceInStep = place + 1 })).
GroupBy(d => d.Members.TeamId).
Select(g => new
{
TeamId = g.Key,
Name = g.Select(d => d.Members.Teams.TeamName).First(),
Members = g.Select(d => new {Time = d.Time, PlaceInStep = d.PlaceInStep, MemberName = d.Members.MemberName}),
TotalTime = g.Aggregate(new TimeSpan(), (sum, nextData) => sum.Add(nextData.Time))
});
But I’ve two issues:
1. If 2 members in same Step (for ex. before 35 year old) have same time up to milliseconds they must have same place
2. In Members subcollection in result I want to arrange members by StepId and show StepName.
How to modify this query? Thanks.
Edit 1:
I want to take some this:

SQL Query to calculate correct member place:
linq equivalent adopted to existing linq query: