加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL发现重复记录

发布时间:2020-12-13 16:48:30 所属栏目:百科 来源:网络整理
导读:我有一个postgresql数据库表称为user_links目前允许以下重复字段: year,user_id,sid,cid 唯一约束当前是第一个称为“id”的字段,但是我现在想要设置约束,以确保年份,user_id,sid和cid都是唯一的,但是我不能应用约束,因为重复的值已经存在,违反这个约
我有一个postgresql数据库表称为user_links目前允许以下重复字段:
year,user_id,sid,cid

唯一约束当前是第一个称为“id”的字段,但是我现在想要设置约束,以确保年份,user_id,sid和cid都是唯一的,但是我不能应用约束,因为重复的值已经存在,违反这个约束。

我的问题是,有没有办法找到所有重复?

谢谢

基本思想将使用带有计数聚合的嵌套查询:
select * from yourTable ou
where (select count(*) from yourTable inr
where inr.sid = ou.sid) > 1

您可以调整内部查询中的where子句以缩小搜索范围。

// EDITED 17 Mar 2016

还有另一个好的解决方案(它在评论中提到,但不是每个人都读它们):

select Column1,Column2,count(*)
from yourTable
group by Column1,Column2
HAVING count(*) > 1

或(较短)

SELECT (yourTable.*)::text,count(*)
FROM yourTable
GROUP BY yourTable.*
HAVING count(*) > 1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读