如果是直接删除的话可以 SQL>delete from table_a where rowid in (select rowid from (select rowid, id, count(1) over(partition by id) cnt, row_number() over(partition by id order by id) r_no from table_a) where cnt >1 and r_no > 1);如果是需要合并的话,就看你的逻辑来定了,简单用sql,复杂用procedure。
create table unique_id as select max(id) id from t1; delete from t1 where id not in (select id from unique_id );drop table unique_id;如果数据量太大。 会慢。 你先试一下。 还有别的方法。
如果是直接删除的话可以
SQL>delete from table_a where rowid in (select rowid from (select rowid, id, count(1) over(partition by id) cnt, row_number() over(partition by id order by id) r_no from table_a) where cnt >1 and r_no > 1);如果是需要合并的话,就看你的逻辑来定了,简单用sql,复杂用procedure。
select max(id) id from t1; delete from t1 where id not in (select id from unique_id );drop table unique_id;如果数据量太大。 会慢。
你先试一下。
还有别的方法。
这个可以吗? unique_id里只有一个id呀。那这样不是把t1删除的只剩下那个id的数据了呀。
你这个很有问题啊,根据你的说法,那不是只留下了表t1中id最大的那行数据,其余的都被删除了。
不符合楼主的意思
不好意思 忘了 group by id。
create table unique_id as
select max(id) id from t1 group by id;
select max(id) id from t1 group by id; delete from t1 where id not in (select id from unique_id ); drop table unique_id;