我有一个名为'message'的简单表,其中包含'id'列和'date'列。可以有多个具有相同值的id。我正在寻找一个最多返回三个id的查询,其中三个必须是具有最大日期的查询。
因此查询会生成如下内容:
id | date
--- -------------------
36 2011-04-01 08:41:19
36 2011-04-17 08:05:18
36 2011-04-17 18:48:49
39 2011-03-31 05:45:15
39 2011-03-31 05:50:07
39 2011-03-31 05:56:23
41 2011-04-11 07:02:27
41 2011-04-19 02:31:31
41 2011-04-19 02:32:53
etc...
我一直无法搞清楚这一点。
答案 0 :(得分:0)
select * from table as t1
where (select count(*) from table as t2
where t1.id = t2.id and t2.date > t1.date) < 3
order by id, date desc