sql - 删除 column2 的重复项,然后根据 column1 对它们进行分组,然后在 sql

表格看起来像

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 t.column1, sum(t.column3)
from (select distinct t.column1, t.column2, t.column3
      from t
     ) t
group by t.column1;

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

关于sql - 删除 column2 的重复项,然后根据 column1 对它们进行分组,然后在 sql 中对 column3 的值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68815493/

相关文章:

postgresql - JSON 与 JSONB Postgresql

javascript - 在 react.js 中加载图像时如何使用 OnLoad 显示加载器

vue.js - 如何使用 Nuxt 中间件重定向到外部站点?

regex - Linux 或 Vim : How to find and replace matc

r - 导出多个匹配模式

java - 包 io.swagger.v3.oas.annotations.media 不存在 (

c - C中的字符串中存在子字符串

python - 如何统计数字的总设置位数

f# - 在 F# 属性中使用 lazy 是否会阻止在不应该计算代码时计算代码?

r - 如何根据数据框名称中的单个字符在数据框中添加新列?