根据id和date返回多个组的结果

时间:2011-04-20 07:37:42

标签: mysql subquery greatest-n-per-group

我有一个名为'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...

我一直无法搞清楚这一点。

1 个答案:

答案 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