删除 column2 的重复项,然后根据 column1 对它们进行分组,然后对 sql 中的 column3 的值求和
Removing duplicates of column2 then group them based on column1 , then sum the values of column3 in sql
table看起来像
column1 column2 column3
400196 2021-07-06 33
400196 2021-07-06 33
400196 2021-08-16 33
我想根据第 1 列的分组得到第 3 列值的总和,但不应添加 date 的重复值
期望的输出是:
column1 column3
400196 66
我写的查询是
select sum(column3)
from table_name
group by column1
但这给了我结果 99
你可以在这里使用两步过程,首先删除重复项,然后聚合和求和:
SELECT column1, SUM(column3) AS column3
FROM (SELECT DISTINCT column1, column2, column3 FROM yourTable) t
GROUP BY column1;
您可以删除子查询中的重复值:
select t.column1, sum(t.column3)
from (select distinct t.column1, t.column2, t.column3
from t
) t
group by t.column1;
注意:将表连接在一起时可能会出现此类问题。删除重复项可能并不总是正确的解决方案。通常最好在加入之前进行计算,这样就没有重复的值需要处理。
table看起来像
column1 column2 column3
400196 2021-07-06 33
400196 2021-07-06 33
400196 2021-08-16 33
我想根据第 1 列的分组得到第 3 列值的总和,但不应添加 date 的重复值
期望的输出是:
column1 column3
400196 66
我写的查询是
select sum(column3)
from table_name
group by column1
但这给了我结果 99
你可以在这里使用两步过程,首先删除重复项,然后聚合和求和:
SELECT column1, SUM(column3) AS column3
FROM (SELECT DISTINCT column1, column2, column3 FROM yourTable) t
GROUP BY column1;
您可以删除子查询中的重复值:
select t.column1, sum(t.column3)
from (select distinct t.column1, t.column2, t.column3
from t
) t
group by t.column1;
注意:将表连接在一起时可能会出现此类问题。删除重复项可能并不总是正确的解决方案。通常最好在加入之前进行计算,这样就没有重复的值需要处理。