【问题标题】:LINQ | How do I get SUM without grouping?林克 |如何在不分组的情况下获得 SUM?
【发布时间】:2010-11-07 11:09:10
【问题描述】:

疯狂的问题......但是,我想要一个列的表中所有行的总和(不使用 group by 子句)

例子:

Table = Survey
Columns = Answer1, Answer2, Answer3
        1        1         1
        4        3         5
        3        3         2

我想要每一列的总和。

最终结果应如下所示:

Answer1Sum  Answer2Sum  Answer2Sum

8           7           8

这不起作用:

from survey in SurveyAnswers
select new
{
    Answer1Sum = survey.Sum(),
    Answer2Sum = survey.Sum(),
    Answer3Sum = survey.Sum()
 }

【问题讨论】:

    标签: linq linq-to-entities aggregate sum aggregation


    【解决方案1】:

    对于任何需要它的人来说,这个答案的 VB.NET 解决方案如下:

    Dim Answer1Sum = SurveyAnswers.Sum(Function(survey) survey.Answer1)
    Dim Answer2Sum = SurveyAnswers.Sum(Function(survey) survey.Answer2)
    Dim Answer3Sum = SurveyAnswers.Sum(Function(survey) survey.Answer3)
    

    【讨论】:

      【解决方案2】:
      SurveyAnswers.Sum(r => r.Answer1);
      

      【讨论】:

        【解决方案3】:

        这行得通吗:

        var answer1Sum = SurveyAnswers.Sum( survey => survey.Answer1 );
        var answer2Sum = SurveyAnswers.Sum( survey => survey.Answer2 );
        var answer3Sum = SurveyAnswers.Sum( survey => survey.Answer3 );
        

        【讨论】:

        • 如果他想把它全部放在一个对象中,你基本上可以用一个新的{...}来包装它。 (不是说他有,只是指出一个选项)
        • 这意味着三个不同的查询。这不能用一个查询来完成吗?
        • 这不是一个疯狂的问题,而是一个合理的问题。上面的代码是不是只有一条 SQL 语句?
        猜你喜欢
        • 1970-01-01
        • 2013-10-16
        • 2012-10-11
        • 2020-08-08
        • 1970-01-01
        • 1970-01-01
        • 2021-05-22
        • 1970-01-01
        相关资源
        最近更新 更多