下面是我的表DUMMY_TBL
的状态
我正在写一个查询来保存首先创建的行,然后删除其余的行。可以基于LOCAL_ID进行分组,因此在这种情况下,查询应保留第一行和第四行,并删除其余行。如果查看WHENCREATED
列,则可以获得有关行的创建详细信息的信息。
到目前为止,我所做的是
select min(WHENCREATED),LOCAL_ID from DUMMY_TBL group by local_ID;
但这只给了我
WHENCREATED
的最小日期,也就是LOCAL_ID。但是,我不确定如何继续进行。任何帮助将不胜感激。
最佳答案
从获取记录以保留的查询中:
select local_id, min(whencreated) as earliest
from dummy_tbl
group by local_id;
然后合并以删除除保留的那些记录以外的所有其他记录:
delete from dummy_tbl
where (local_id, whencreated)
not in
(
select local_id, min(whencreated) as earliest
from dummy_tbl
group by local_id
);
请记住,对于更大的表,这可能不起作用,因为in子句具有大小限制