Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite删除旧数据_Sqlite_Sorting - Fatal编程技术网

SQLite删除旧数据

SQLite删除旧数据,sqlite,sorting,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 感谢您的帮助。解决方案可以是: select * from tab w

我想从数据库表中删除旧数据。我只想保留每个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
感谢您的帮助。

解决方案可以是:

select * from tab where (
    select count(*) from tab as t 
    where t.ID = tab.ID and t.TIME >= tab.TIME
    ) <= 2;
欲了解更多详情,请访问:

解决办法可以是:

select * from tab where (
    select count(*) from tab as t 
    where t.ID = tab.ID and t.TIME >= tab.TIME
    ) <= 2;
欲了解更多详情,请访问: