【问题标题】:LINQ group by and SUM [duplicate]LINQ 分组和 SUM [重复]
【发布时间】:2012-11-25 23:41:55
【问题描述】:

可能重复:
Get sum of two columns in one LINQ query

我需要知道如何编写一个 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

【问题讨论】:

    标签: c# .net sql linq entity-framework


    【解决方案1】:

    完整的道具去Steven这个答案: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
    };
    

    【讨论】:

      【解决方案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
          });
      

      【讨论】:

        【解决方案3】:

        或者对于 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
        }); 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-08-08
          • 2020-12-01
          • 1970-01-01
          • 2023-03-21
          • 2018-08-24
          • 1970-01-01
          • 2011-09-05
          • 1970-01-01
          相关资源
          最近更新 更多