我有一张1000万行的表
我有重复的行,我已经开发了一个集中了几列的列。此创建的列应该是唯一的。
所以这就是我所拥有的
col1 col2 col3 ... col50 1 jim red 1jimred 1 jim red 1jimred 2 sam blue 1samblue 3 fox pink 3foxpink
我想要什么
col1 col2 col3 ... col50 1 jim red 1jimred 2 sam blue 1samblue 3 fox pink 3foxpink
我想编写一个程序,删除col50中找到的重复行,并保留所有其他列。
但是我认为1000万行中有9百万是独一无二的,所以我无法将结果存储在内存中。
有办法做到这一点吗?
答案 0 :(得分:0)
这应该在纯SQL中可行:
CREATE TABLE temp_table as SELECT DISTINCT * FROM source_table;
DELETE FROM source_table;
INSERT INTO source_table SELECT * FROM temp_table
答案 1 :(得分:0)
delete from TABLE where id in (
select TABLE.id from TABLE q1
join TABLE q2 on q1.name = q2.name
where q1.id < q2.id)