【问题标题】:Aggregate sum over a particular ID value in SQL Server汇总 SQL Server 中特定 ID 值的总和
【发布时间】:2015-07-24 21:53:05
【问题描述】:

说,我的表中有 3 列:

---------------
name                 | ID  | Amt
ABC                  |  1  | 500
ABC                  |  1  | 650
XYZ                  |  2  | 700
XYZ                  |  2  | 550
DEF                  |  3  | 200

如何获得每个 ID 汇总金额的输出,即 ABC 给出 1150、XYZ 1250 和 DEF 200?

【问题讨论】:

    标签: sql-server sum aggregate


    【解决方案1】:

    你想要一个分组,听起来像是你的例子中的一个总和:

    Select Name, ID, sum(amt) as TotalAmt
    from MyTable
    Group by Name, ID
    

    【讨论】:

      【解决方案2】:
      SELECT name,SUM(Amt) FROM [table] GROUP BY name
      

      或者,如果您想显示姓名和 ID

      SELECT name,ID,SUM(Amt) OVER (PARTITION BY name) FROM [table]
      

      【讨论】:

        【解决方案3】:

        这可以使用简单的group by 语句来完成:

        select name,
               id,
               sum(amt) as agg_sum
        from total
        group by name,id;
        

        SQL Fiddle Demo

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多