【问题标题】:SQL select values sum same IDSQL 选择值总和相同的 ID
【发布时间】:2012-11-28 23:27:10
【问题描述】:

这是我的名为“SAM”的表

ID  |   S_Date   |  S_MK |   TID   |   Value   |
===============================================
1   | 2012-12-11 |   1   |   112   |   23      |
2   | 2012-12-11 |   2   |   112   |   3       |
3   | 2012-12-11 |   1   |   113   |   22      |
4   | 2012-12-11 |   3   |   114   |   2       |

这应该是我的预期结果:具有相同 T_ID 的“Value”列的总和:

S_Date     | TID   | sum(Value)|
===============================
2012-12-11 | 112   |   26      |
2012-12-11 | 113   |   22      |
2012-12-11 | 114   |   2       |

【问题讨论】:

    标签: sql select group-by sum


    【解决方案1】:
    select S_Date, TID, sum(Value)
    from SAM
    group by S_Date, TID
    

    【讨论】:

      【解决方案2】:

      您必须使用聚合函数“sum”作为值列的总和。

      select S_Date ,TID, Sum(Value) from Sam group by S_Date, TID
      

      此外,您应该将所有列包含在您在 select 语句中使用的 group by 子句中。

      【讨论】:

        【解决方案3】:

        如果你真的需要这个结果集,只按 T_ID 分组,你可以使用这个查询:

        SELECT   (SELECT top 1 S_Date FROM SAM as t1 WHERE t1.TID = t2.TID) as S_Date,
                 TID,
                 SUM(Value) 
        FROM     SAM as t2
        GROUP BY TID
        

        【讨论】:

          【解决方案4】:
          SELECT *, SUM(Value) AS Value From SAM GROUP BY TID
          

          这将通过汇总同一 TID 列的 Value 列来返回同一表。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-12-27
            • 1970-01-01
            • 2018-07-24
            • 2023-01-11
            • 1970-01-01
            • 2021-01-30
            • 1970-01-01
            相关资源
            最近更新 更多