Pgsql怎样找到表中某个字段值重复的记录并删除冗余记录,只保留一条

背景

今天发现某个黄页爬取的数据有部分重复了,原本我用的公司详情页的url进行md5来作为主键做upsert入,但后面在核验数据时发现有些详情url虽是同一间公司的,但路由上有细微差别导致写入了重复的公司数据,所以要想办法清理掉重复的公司;
除了有表id外,我的表里还有一个local_id字段,用于保存页面上的内部id,下面就从这个字段入手进行;

实现方案

第一步首先是看看有多少重复的记录,这个很简单,通过group by local_id就能找到了,如下:

SELECT
	"local_id" 
FROM
	"result".table_name
WHERE
	"sources" = 'xxxx' 
GROUP BY
	"local_id" 
HAVING
	COUNT ( "local_id" ) > 1 
	)

结果数量是91条,这就意味着有91个公司的信息有重复的;

然后我想看看总共有多少条对应的重复公司记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值