匿名用户postgresql没有主键,如何把两条一样的记录删掉其中一条?

数据导出之后就会有两条记录,直接SUM就会重复
我来答
添加附件
收藏
复制链接
微信扫码分享
在小程序上查看
分享
添加附件
问题补充
1条回答
默认
最新
找个测试库试试 ctid
参考:https://www.cnblogs.com/lottu/p/5613098.html
jiekexu=# select * from t;
id | name | age
----+----------------------+-----
1 | JiekeXu | 18
1 | JiekeXu | 18
2 | Jieke | 20
2 | Jieke | 20
(4 rows)
jiekexu=# delete from t where ctid not in (select min(ctid) from t group by id);
DELETE 2
jiekexu=# select * from t;
id | name | age
----+----------------------+-----
1 | JiekeXu | 18
2 | Jieke | 20
(2 rows)
jiekexu=# insert into t values(2,'Jieke',20);
INSERT 0 1
jiekexu=# select ctid,* from t;
ctid | id | name | age
-------+----+----------------------+-----
(0,1) | 1 | JiekeXu | 18
(0,3) | 2 | Jieke | 20
(0,5) | 2 | Jieke | 20
(3 rows)
jiekexu=# select min(ctid) from t group by id;
min
-------
(0,3)
(0,1)
(2 rows)
jiekexu=# delete from t where ctid not in (select min(ctid) from t group by id);
DELETE 1
jiekexu=# select ctid,* from t;
ctid | id | name | age
-------+----+----------------------+-----
(0,1) | 1 | JiekeXu | 18
(0,3) | 2 | Jieke | 20
(2 rows)
评论
有用 0回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏


