我有一张桌子
ID TOTAL SUM(TOTAL)
1 62 62
1 53 53
2 62 62
2 47 47
我认为SUM(TOTAL)应该看起来像
ID TOTAL SUM(TOTAL)
1 62 115
1 53 115
2 62 109
2 47 109
这是我使用的查询
select ID, TOTAL, SUM(TOTAL)
from tablename
GROUP BY TOTAL, ID
答案 0 :(得分:3)
您可以改为窗口SUM
:
Select ID, TOTAL, SUM(TOTAL) OVER(PARTITION BY ID)
From tablename
这将为您提供预期的结果。它会显示每行的ID
和TOTAL
以及SUM
分组的ID
。
此类求和不需要GROUP BY
。
答案 1 :(得分:1)
您需要从组中删除TOTAL
列,因此需要删除选择列表。由于TOTAL
位于您的选择列表和组中,因此无法正确汇总您的预期。
SELECT ID, SUM(TOTAL)
FROM tablename
GROUP BY ID
要获得准确的输出:
SELECT tablename.ID,
TOTAL,
TOTALSUM
FROM (SELECT ID,
SUM(TOTAL) AS TOTALSUM
FROM tablename
GROUP BY ID) AS t
INNER JOIN
tablename
ON tablename.ID = t.ID;