下面是我的表DUMMY_TBL的状态
java - 保存首先创建的行-LMLPHP

我正在写一个查询来保存首先创建的行,然后删除其余的行。可以基于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子句具有大小限制

10-04 20:13