LINQ でこれを行うことは可能ですか: フィールド (LineTotal) でグループ化し、上位 9 グループのみを返し、10 番目のグループで他のすべてのグループの合計を返しますか?
SQL サーバーでは、これは次のように行うことができます。
with TopGroups as
(
select sum(sol.LineTotal) as ProductGroupSales, p.ProductGroupId,
ROW_NUMBER() OVER(ORDER BY sum(sol.LineTotal) DESC) as Num
from SalesOrderLines sol left join Products p on p.Id = sol.ProductId
group by p.ProductGroupId
)
select ProductGroupSales from TopGroups where Num < 10
union all
select sum(ProductGroupSales) from TopGroups where Num >= 10
これを LINQ に変換できますか? 方法がわからず、LINQROW_NUMBER() OVER()
に変換します。union all