16

这是我的名为“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

4 回答 4

21
select S_Date, TID, sum(Value)
from SAM
group by S_Date, TID
于 2012-12-11T11:50:52.207 回答
2

如果你真的需要这个结果集,只按 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
于 2012-12-11T12:13:40.810 回答
1

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

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

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

于 2012-12-11T12:10:27.477 回答
0
SELECT *, SUM(Value) AS Value From SAM GROUP BY TID

这将通过对Value同一TID列的列求和来返回同一个表。

于 2020-08-06T16:12:16.313 回答