SQL选择值总和相同的ID

时间:2012-12-11 11:49:39

标签: sql select group-by sum

嗨,大家好,这是我的名为“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的列“值”的总和:

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

4 个答案:

答案 0 :(得分:15)

select S_Date, TID, sum(Value)
from SAM
group by S_Date, TID

答案 1 :(得分:1)

如果您确实需要此结果集,只能通过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

答案 2 :(得分:0)

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

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

您还应该在select语句中使用group by子句中的所有列。

答案 3 :(得分:0)

SELECT *, SUM(Value) AS Value From SAM GROUP BY TID

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