1
Я попытался перевестиMultiple row_number в 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
от ранее вопрос (Grouping with partition and over in TSql)
С помощью с Row_number over (Partition by xxx) in Linq? я получил решение перевести ОДНО из row_number s, но кажется i'am не повезло, чтобы успешно перевести весь вопрос?
Моя попытка:
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 }
)
)
К сожалению, это предложение, похоже, не дает никакого ответа –
@JerkerPihl Я добавил процедуру тестирования, чтобы показать, что она должна работать. – valex
Я посмотрю на ваш ответ через несколько дней :) –