小编典典

Linq to Sql查询具有多个聚合

sql

给定一个简单的模式,例如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)

有没有一种方法可以将其作为一个查询来完成?


阅读 186

收藏
2021-04-28

共1个答案

小编典典

我能想到的是给它一个假的group-by子句。它可以正常工作,并能按您期望的那样输出,但是生成的SQL实际上最终传递了参数“
1”并对其进行分组,这是次优的选择。这是我所学到的语法:

PurchaseOrders
    .GroupBy(po => 1)
    .Select(pogroup => new {
           TotalSales = pogroup.Sum(po => po.Total),
           TotalItems = pogroup.Sum(po => po.LineItemCount)
        });
2021-04-28