在 LINQ 中是否可以这样做:按字段(LineTotal)分组,仅返回前 9 个组,然后在第 10 个组中返回所有其他组的总和?
在 SQL Server 中,可以这样做:
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吗?我不确定如何转换为 LINQ ROW_NUMBER() OVER()
。union all