PostgreSQL 删除没有 id 或 unique_key 的重复项

ben*_*nsw 1 postgresql duplicates sql-delete

我想知道如何删除表中完全重复的行并只保留一个。例如这张桌子。

在此处输入图片说明

在此处输入图片说明

我读过的大多数线程都已使用idunique_key在这种情况下我没有使用。

编辑:当我说remove我的意思delete是表中的那些记录时,我又没有 id 来引用以创建条件以保留一条记录。对困惑感到抱歉。

先感谢您。

这可能是与其他线程相同的问题。但是,他们未能解释 fa06 成功提供的 ctid 是什么。所以,我会说我问的是使用相同的词但不同的问题。请删除“标记重复”。谢谢。

Fah*_*hmi 8

你可以试试下面

如果您需要专门针对重复记录,您可以使用内部ctid字段,它唯一标识一行:

DELETE FROM yourtablename
WHERE ctid NOT IN (
  SELECT MIN(ctid)
  FROM yourtablename
  GROUP BY date, value, label,sequence
)
Run Code Online (Sandbox Code Playgroud)