Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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

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
SQLite3:为所有ID选择N个最小值_Sql_Sqlite_Aggregate Functions - Fatal编程技术网

SQLite3:为所有ID选择N个最小值

SQLite3:为所有ID选择N个最小值,sql,sqlite,aggregate-functions,Sql,Sqlite,Aggregate Functions,假设我有一个表my_table,它有一列ID,还有一列Date,所有这些记录都是唯一的 我想为所有ID选择N个日期最少的记录。如果我想在N=1时这样做,我有以下几点 SELECT * FROM my_table r WHERE r.Date = (SELECT Min(Date) FROM my_table WHERE ID = r.ID) 如何将其推广到更高的N?SQLite允许以下语法: SELECT r.* FROM my_table r WHERE r.Date IN

假设我有一个表
my_table
,它有一列
ID
,还有一列
Date
,所有这些记录都是唯一的

我想为所有ID选择N个日期最少的记录。如果我想在N=1时这样做,我有以下几点

SELECT
    *
FROM my_table r
WHERE
    r.Date = (SELECT Min(Date) FROM my_table WHERE ID = r.ID)

如何将其推广到更高的N?

SQLite允许以下语法:

SELECT r.*
FROM my_table r
WHERE r.Date IN (SELECT Date FROM my_table WHERE ID = r.ID ORDER BY Date LIMIT 5);

很有魅力,谢谢。对于N=1,比我的初始方法快5倍。出于兴趣,是否有一种简单的方法可以指定某个ID必须有>=N条记录才能选择前N条?@rwolst。您必须对聚合值进行额外的比较。