我正在使用postgreSQL 9.2。
让我来看下表:
id name definition
serial varchar(128) text
1 name1 definition1
..........................................
我需要编写一个查询,删除所有具有相同名称的行,以便每行都有唯一的名称。如果两行具有相同的名称,则它们的定义也相同。
答案 0 :(得分:1)
在名称上使用row_number()函数并删除所有包含row_number()>的行。 1
以下是一个示例查询:Deleting duplicates
答案 1 :(得分:0)
DELETE FROM mytable dd
WHERE EXISTS (
SELECT *
FROM mytable ex
WHERE ex.name = dd.name
AND ex.id < dd.id
);
答案 2 :(得分:0)
为什么你首先让客户端应用程序在名称重复时添加行?