sql - 具有多个聚合的 Linq to Sql 查询

标签 sql linq linq-to-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)

有没有办法将其作为一个查询来执行?

最佳答案

我能解决的最接近的问题是给它一个假的 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/

相关文章:

mysql - 在 vb.net 中将 sql 数据添加到 DB 是否需要 .ExecuteNonQuery()

php - 想要合并两个 sql 查询以获得共同的结果

c# - 使用 Linq to SQL 确定行是否存在的最快方法是什么?

c# - 无法识别为刷新指定的对象

mysql - 排名 - 选择相应的列值到 MAX(column) 值

MYSQL 通过连接更新未正确连接

linq - 需要一个简单的 linq

c# - 在 Linq 中按问题分组

c# - 停留在基本的 Linq to XML 查询上

Linq 到 Sql 多对多