暂无图片
postgresql没有主键,如何把两条一样的记录删掉其中一条?
我来答
分享
暂无图片 匿名用户
postgresql没有主键,如何把两条一样的记录删掉其中一条?


数据导出之后就会有两条记录,直接SUM就会重复

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
JiekeXu
暂无图片

找个测试库试试 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
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
在一个高并发的PostgreSQL环境中,你观察到系统在高峰时段遇到了锁等待的问题。为了更好地理解和解决这个问题,下面哪个工具或特性最有助于分析和诊断事务间的锁竞争情况?
回答 1
已采纳
A.使用pglocks和pgstatactivity视图结合查询
pg_repack这个插件,有什么作用?
回答 1
已采纳
类似oracle的在线重定义
postgreSQL 两个字符串,“大中华区”和“中区大”,这两个如何匹配,找出不同的那个字“华”?
回答 1
拆分成单个字。再关联。
Postgresql 里面有类似sql trace的工具吗?
回答 1
已采纳
可以参考下autoexplain模块,https://www.postgresql.org/docs/current/autoexplain.html
greenplum节点宕机,pg_stat_activity卡了一堆进程杀不掉
回答 4
已采纳
补充下sql进程:(打马赛克的都是master节点)
repmgr5.1如何重新注册主库,主库注册错了,想重新注册
回答 1
如果你在PostgreSQL的日志中发现了删除记录的记录,但没有发现修改或新增记录的记录,那么有可能是因为删除操作是通过直接执行SQL语句或使用一些工具进行的,而不是通过应用程序进行的。如果想要监视数
plsql连接不上Oracle,报错不能初始化
回答 2
已采纳
使用sqldeveloper连接工具连接oracle;https://www.oracle.com/tools/downloads/sqldevdownloads.html
pg中执行计划的存储位置
回答 1
历史执行计划可以使用autoexplain插件,从数据库日志中查看,数据库字典没有。
postgresql容器没有集成oracle_fdw吗?
回答 1
已采纳
你是说的官方提供的容器么?这种扩展一般都不会默认安装的,需要自行添加。你其实也可以自己做一个集成了这个扩展的容器
postgreSQL 支持ipv6吗?
回答 1
支持的配置listenaddresses 即可Theentry 0.0.0.0 allowslisteningforallIPv4addressesand ::
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~