Sql 为每个用户选择最近的N条记录-INFORMIX DB

Sql 为每个用户选择最近的N条记录-INFORMIX DB,sql,ms-access,informix,Sql,Ms Access,Informix,我有一个包含以下字段的表: USER_ID SITE_ID STATION_ID Login_DateTime 我想为每个用户/站点组合提取最近的N条记录,比如说5条记录 您能帮我创建MS Access和Informix DBs的查询吗?我认为使用与Informix和MS Access兼容的SQL进行此操作的唯一方法是使用相关子查询: select t.* from table as t where (select count(*) from table as t2

我有一个包含以下字段的表:

USER_ID
SITE_ID
STATION_ID
Login_DateTime
我想为每个用户/站点组合提取最近的N条记录,比如说5条记录


您能帮我创建MS Access和Informix DBs的查询吗?

我认为使用与Informix和MS Access兼容的SQL进行此操作的唯一方法是使用相关子查询:

select t.*
from table as t
where (select count(*)
       from table as t2
       where t2.user_id = t.user_id and t2.site_id = t.site_id and
             t2.login_datetime >= t.login_datetime
      ) <= 5;

谢谢你,戈登。答案是正确的;但是,在处理30000条记录时,查询需要相当长的时间。在接受之前,我将等待可能的改进解决方案。再次感谢您可以在tableuser\u id、site\u id、login\u datetime上添加索引,以加快两个数据库中的查询速度。