给定一个简单的模式,例如PurchaseOrders { OrderId, Total, LineItemCount },我想为一些简单的统计数据生成一个简单的查询,如下所示:
select sum(lineitemcount) as totalitems, sum(total) as totalsales
from purchaseorders
但是在 Linq to Sql 中,我很难将其纳入一个查询。
目前我有这个:
decimal totalSales = PurchaseOrders.Sum(po => po.Total)
decimal totalItems = PurchaseOrders.Sum(po => po.LineItemcount)
有没有办法将其作为一个查询来执行?
最佳答案
我能解决的最接近的问题是给它一个假的 group-by 子句。它可以正常工作,并按您的预期输出,但生成的 SQL 实际上最终会传入一个参数“1”并对其进行分组,这有点次优。这是我得到的语法:
PurchaseOrders
.GroupBy(po => 1)
.Select(pogroup => new {
TotalSales = pogroup.Sum(po => po.Total),
TotalItems = pogroup.Sum(po => po.LineItemCount)
});
关于sql - 具有多个聚合的 Linq to Sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1880634/