【问题标题】:How to get sum of rows in sql如何获取sql中的行总和
【发布时间】:2015-02-21 16:14:57
【问题描述】:

我需要获取每一行的总数,但我不能为该行取别名,因为它会给出错误。如何获取以下语句中行的 sum()。

select sum(Amount) as [Amount total],
       sum(balance) as [Balance Total],
       sum(Remaining) as [Remaining Total]
from MyTable

我想做类似的事情

select sum(Amount) as [Amount total],
       sum(balance) as [Balance Total],
       sum(Remaining) as [Remaining Total],
       [Amount total]+[Balance Total]+[Remaining Total] as Total
from MyTable 

【问题讨论】:

    标签: sql sql-server select sum


    【解决方案1】:

    您不必对总和求和,只需对它们正在求和的列求和,您就会得到总和:

    select sum(Amount) as [Amount total],sum(balance)[Balance Total]
    ,sum(Remaining)[Remaining Total],SUM(Amount+Balance+Remaining) as Total
        from MyTable 
    

    【讨论】:

      【解决方案2】:

      试试这个:

      SELECT SUM(Amount) AS [Amount total], 
             SUM(balance) AS [Balance Total], 
             SUM(Remaining) AS [Remaining Total], 
             SUM(Amount + balance + Remaining) AS Total
      FROM MyTable 
      

      【讨论】:

        【解决方案3】:

        重复表达式、使用子查询或使用 CTE。这是第一个选择:

        select sum(Amount) as [Amount total],
               sum(balance) as [Balance Total],
               sum(Remaining) as [Remaining Total],
               (sum(Amount) + sum(balance) + sum(Remaining)) as Total
        from MyTable;
        

        在定义它们的同一级别上无法识别列别名。

        【讨论】:

          猜你喜欢
          • 2015-05-07
          • 2013-02-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-20
          相关资源
          最近更新 更多