SQLite删除旧数据

时间:2016-04-11 22:46:01

标签: sqlite sorting

我想从数据库表中删除旧数据。我想保留每个id的最后2条记录。例如,我有一个包含以下记录的表。

ID TIME DATA
 1   2   3
 1   3   4
 1   4   5
 2   2   3
 2   3   4
 2   4   5
 2   5   6

我想做的结果是(必须按时间排序):

ID TIME DATA
 1   3   4
 1   4   5
 2   4   5
 2   5   6

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

解决方案可能是:

select * from tab where (
    select count(*) from tab as t 
    where t.ID = tab.ID and t.TIME >= tab.TIME
    ) <= 2;

了解更多详情,请访问:

http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/