【问题标题】:how to find duplicate rows in postgres?如何在postgres中找到重复的行?
【发布时间】:2017-07-06 23:03:09
【问题描述】:

我感觉几周前我问了一个关于计算一个数据集中相同行的问题。这是我收到的答案:

select count(*), a_dttm, b_dttm, c_dttm 
from data 
group by a_ddtm, b_dttm, c_dttm;

我知道在这个其他数据集中有重复项,它们弄乱了我的计数。截至目前,我知道多次使用了哪个 id,但这并不一定意味着这些行是重复的。

select id, count(*) as count
from (
select *
from data
where date >= '2016-01-01' and date <= '2016-12-31'
) as a
group by id
having count(*) >= 2
order by count desc

我的问题是如何选择我的数据集中所有完全相同的行?我会为每一列写一个子查询还是选择 * ?

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    如果我要找到在脚本上查找重复值的解决方案,我会执行 count(*) 并按函数进行分组以计算重复的数量。这是你之前得到的答案。

    要回答您的问题,我建议在您的组中添加“日期”并选择,因为它是您需要使用的字段的“唯一性”指标。

    我只需找到或创建一个“主索引”以确保使用的所有数据都是唯一的。

    但是,如果您不想弄乱您的数字,我通常使用 DISTINCT 作为删除该表上重复项的简单方法。请参阅下面的参考: http://www.postgresqltutorial.com/postgresql-select-distinct/

    【讨论】:

      猜你喜欢
      • 2021-11-16
      • 2020-08-29
      • 1970-01-01
      • 2023-03-24
      • 2011-02-05
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多