我需要运行一个 Group 函数,其中结果在函数中明确排序。这是表结构的示例(以及伪造的数据)
id (int) | foo_id (int) | bar_id (int) | action (enum) | created (datetime)
1 | 17980 | 18 | added | 2012-12-03 07:34:23
2 | 14321 | 17 | added | 2013-01-06 07:34:23
3 | 9784 | 18 | added | 2013-02-15 07:34:23
4 | 17980 | 18 | removed | 2013-03-12 07:34:23
etc.
我想知道每个 foo_id 的最新操作。理想情况下,我会运行这样的事情:
SELECT * FROM table WHERE bar_id = 18 GROUP BY foo_id ORDER BY created;
理想的结果是:
id | foo_id | bar_id | action | created
3 | 9784 | 18 | added | 2013-02-15 07:34:23
4 | 17980 | 18 | removed | 2013-03-12 07:34:23
对于 foo_id = 17980,发生了两个动作。第一个动作添加了 foo ,第二个动作删除了它。我理想的 Group 函数将只返回由创建的字段确定的最新操作。
据我所知 Group 函数不接受订单参数。有没有办法做到这一点?谢谢您的帮助。