我正在尝试删除重复的值,这些值由于某种原因导入到特定的表中。 此表中没有主键。 共有27797条独特记录。
Select distinct txdate, plunumber from itemaudit
给我正确的记录,但当然只显示txdate,笨蛋。
如果可以选择所有字段但只选择txdate的不同,那么我可以导出值,删除重复的值并重新导入。 或者,如果可以从整个表中删除不同的值。
如果选择所有字段的不同,则该值不正确。
答案 0 :(得分:3)
要获取有关重复项的所有信息,您只需使用JOIN
查询重复行的所有信息:
SELECT b.*
FROM (SELECT COUNT(*) as cnt, txdate, plunumber
FROM itemaudit
GROUP BY txdate, plunumber
HAVING COUNT(*) > 1) a
INNER JOIN itemaudit b ON a.txdate = b.txdate AND a.plunumber = b.plunumber
答案 1 :(得分:0)
DELETE FROM itemaudit t1
WHERE EXISTS (
SELECT 1 FROM itemaudit t2
WHERE t1.txdate = t2.txdate and t1.plunumber = t2.plunumber
AND t1.RDB$DB_KEY < t2.RDB$DB_KEY
);