我有一张包含大量数据(+3百万行)和30列的表格。不幸的是,在某些情况下,我会收到重复的行,并且原来的密钥是'缩短,因此在将行添加到表中时,不能用于检查行是否已存在。如何比较每一行中每一列的每个值,如果找到匹配(即整个行与另一整行匹配,除了键),匹配将被删除?
以下查询显然不起作用,因为它需要一个唯一的密钥来检查(我认为?):
SELECT DISTINCT *
INTO duplicate_table
FROM original_table
GROUP BY key_value
HAVING COUNT(key_value) > 1
DELETE original_table
WHERE key_value IN (SELECT key_value
FROM duplicate_table)
INSERT original_table
SELECT *
FROM duplicate_table
DROP TABLE duplicate_table
或者上述情况会如上所述?