0

可能重复:
在一个 LINQ 查询中获取两列的总和

我需要知道如何编写一个 LINQ 查询,它会给我与这个 SQL 查询相同的结果:

select sum(col1) as [col1] , sum(col2) as [col2] , sum(col1)/sum(col2) as [col3], col4 as [col4] 
from some_table 
group by col4
4

3 回答 3

4

或者使用 Lambda,我假设some_table是实体或存储库 .. 等。

some_table.GroupBy( row => row.col4).Select( row => new
{
    col1 = row.Sum(x => x.col1), 
    col2 = row.Sum(x => x.col2),
    col3 = row.Sum(x => x.col1) / row.Sum(x => x.col2),
    col4 = row.Key
}); 
于 2012-12-07T19:02:26.493 回答
3

完整的道具去史蒂文这个答案:https ://stackoverflow.com/a/2432348/211627

from row in some_table
group row by row.col4 into g
select new
{
    col1 = g.Sum(x => x.col1), 
    col2 = g.Sum(x => x.col2),
    col3 = g.Sum(x => x.col1) / g.Sum(x => x.col2),
    col4 = g.Key
};
于 2012-12-07T18:58:52.557 回答
2

这是假设您的表是某种实体。这会将其放入Anonymous Type, 但也可用于创建您自己类型的对象。

myInitialCollection.GroupBy(x => x.Col4).Select(x => 
    new { 
            col1 = x.Sum(y => y.Col1), 
            col2 = x.Sum(y => y.Col2), 
            col3 = (x.Sum(y => y.col1) / x.Sum(y => y.col2)), 
            col4 = x.Key
    });
于 2012-12-07T19:02:57.983 回答