我有一张桌子:
select * from tmp_dib;
1360 DIBAKAR SE1
1360 DIBAKAR SE
1361 JAI SE1
1361 JAI SE
1365 NITISH SE1
1365 NITISH SE
其中SE1
是旧记录,SE
是新记录。
通过以下查询,我获得了新记录。
select a.* from tmp_dib a where rowid >
(select min(rowid) from tmp_dib b where a.ID=b.ID);
1360 DIBAKAR SE
1361 JAI SE
1365 NITISH SE
请帮我查询以获取旧记录的记录。我想获取旧记录并想要删除。
我想要的输出:
1360 DIBAKAR SE1
1361 JAI SE1
1365 NITISH SE1
这是一个示例表(不是实际的表/数据)..我有一个大约10k数据的表,它在一个实时系统中。所以我需要用旧记录确定条目。
答案 0 :(得分:2)
你不会引用第三列,而不是使用id?
您还没有指定列名称是什么,但我假设它名为Column3
DELETE TMP_DIB
WHERE Column3 = 'SE1'
答案 1 :(得分:0)
尝试使用rowid获取和删除旧记录。
DELETE FROM tmp_dib A WHERE ROWID <
(SELECT max(ROWID) FROM tmp_dib b WHERE A.ID=b.ID);
答案 2 :(得分:0)
表格中可能有最后更新日期,对吗?如果是,您可以使用以下查询
delete from tmp_dib where id||last update date in (select id,min(last update date) from tmpbid group by id having count(*)>1)