MOVE
丢弃不满足条件的数据
12c+版本支持,https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ALTER-TABLE.html#GUID-552E7373-BF93-477D-9DA3-B2C9386F2877
| FILM_ID | TITLE | UK_RELEASE_DATE | LENGTH_IN_MINUTES | BBFC_RATING | 
| 1 | Frozen | 06-DEC-13 | 102 | PG | 
| 2 | Frozen | 06-DEC-13 | 102 | PG | 
| 3 | Frozen | 06-DEC-13 | 100 | U | 
| 4 | Aladdin | 18-NOV-93 | 90 | U | 
| 5 | Aladdin | 18-NOV-93 | 90 | U | 
| 6 | The Little Mermaid | 12-OCT-90 | 83 | U | 
alter table films move including rows where film_id > 4;
将符合条件的数据留下,其他数据丢弃。| FILM_ID | TITLE | UK_RELEASE_DATE | LENGTH_IN_MINUTES | BBFC_RATING | 
| 5 | Aladdin | 18-NOV-93 | 90 | U | 
| 6 | The Little Mermaid | 12-OCT-90 | 83 | U | 
按主键
delete from films
where film_id not in
( select max(film_id) over ( partition by TITLE )
  from films
);ROWID
delete from films
where rowid in
( select rowid
  from
  ( select rowid,
           row_number() over ( partition by TITLE order by FILM_ID desc) as r
    from films
  ) 
  where r > 1
);
delete from films
 where rowid not in
       (select max(rowid) from films t group by TITLE, UK_RELEASE_DATE);
delete from films
 where rowid not in
       (select min(rowid) from films t group by TITLE, UK_RELEASE_DATE);PARTITION
ALTER TABLE table_name DROP PARTITION partition_name;









