在 table 中查找重复记录并使用 postgreSQL 删除这些记录
FInding Duplicate records in a table and deleting those records using postgreSQL
我有一个名为 "cities" 的 table,它包含 "ID"、"state" 和 "cities" 列。在 table 中发现了一些重复的记录。我希望从 table 中找到并删除这些记录。请注意,仅当州和城市名称均为 same.How 时,查询才应找到并删除记录,这可以使用 postgreSQl 完成。
假设 id
是唯一的(正如您的问题所暗示的那样),您可以将 delete
与 id
:
一起使用
delete from cities c
where c.id > (select min(c2.id)
from cities c2
where c2.state = c.state and c2.cities = c.cities
);
如果id
也可以一样,可以用ctid
:
delete from cities c
where c.ctid > (select min(c2.ctid)
from cities c2
where c2.state = c.state and c2.cities = c.cities and
c2.id = c.id
);
我有一个名为 "cities" 的 table,它包含 "ID"、"state" 和 "cities" 列。在 table 中发现了一些重复的记录。我希望从 table 中找到并删除这些记录。请注意,仅当州和城市名称均为 same.How 时,查询才应找到并删除记录,这可以使用 postgreSQl 完成。
假设 id
是唯一的(正如您的问题所暗示的那样),您可以将 delete
与 id
:
delete from cities c
where c.id > (select min(c2.id)
from cities c2
where c2.state = c.state and c2.cities = c.cities
);
如果id
也可以一样,可以用ctid
:
delete from cities c
where c.ctid > (select min(c2.ctid)
from cities c2
where c2.state = c.state and c2.cities = c.cities and
c2.id = c.id
);