删除 column2 的重复项,然后根据 column1 将它们分组,然后将 sql 中 column3 的值相加

noo*_*mer 2 sql group-by sum aggregate-functions

桌子看起来像

column1  column2    column3
400196  2021-07-06   33
400196  2021-07-06   33
400196  2021-08-16   33
Run Code Online (Sandbox Code Playgroud)

我想根据第 1 列的分组获得第 3 列值的总和,但不应添加重复的日期值

所需的输出是:

column1  column3
400196   66
Run Code Online (Sandbox Code Playgroud)

我写的查询是

select sum(column3)
from table_name
group by column1
Run Code Online (Sandbox Code Playgroud)

但这给了我结果 99

Gor*_*off 5

您可以删除子查询中的重复值:

select t.column1, sum(t.column3)
from (select distinct t.column1, t.column2, t.column3
      from t
     ) t
group by t.column1;
Run Code Online (Sandbox Code Playgroud)

注意:将表连接在一起时可能会出现此类问题。删除重复项可能并不总是正确的解决方案。通常最好在加入之前进行计算,这样您就不必处理重复值。