Ich versuchteMultiple ROW_NUMBER in LINQ
select *
from (
select *, rng = row_number() over (partition by grp order by id)
from (
select *, grp = row_number() over (order by id) - row_number() over (partition by Name, Status, DateFinished order by id)
from tooling) g
) gn
where rng = 1
order by id
aus einer früheren Frage (Grouping with partition and over in TSql)
Mit Hilfe zu übersetzen mit Row_number over (Partition by xxx) in Linq? bekam ich die Lösung ONE der row_number s zu übersetzen, aber scheint I'am Pech gehabt, die ganze Frage erfolgreich zu übersetzen?
Mein Versuch:
Tooling.OrderBy(x => x.Id)
.GroupBy(x => new {x.Name,x.Status,x.DateFinished})
.Select(group => new { Group = group, Count = group.Count() })
.SelectMany(groupWithCount =>
groupWithCount.Group.Select(b => b)
.Zip(
Enumerable.Range(1, groupWithCount.Count),
(j, i) => new { j.Name,j.Status, j.DateFinished, RowNumber = i }
)
)
Leider scheint dieser Vorschlag keine Antwort zu geben –
@JerkerPihl Ich habe ein Testverfahren hinzugefügt, um zu zeigen, dass es funktionieren muss. – valex
Ich werde auf Ihre Antwort in ein paar Tagen schauen :) –