【发布时间】:2016-06-08 13:43:51
【问题描述】:
我试着翻译
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 的解决方案,但似乎我没有成功翻译整个问题?
我的尝试:
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 }
)
)
【问题讨论】:
标签: linq row-number partition