【发布时间】:2016-10-08 12:08:22
【问题描述】:
我有一个表格来记录用户上次登录的详细信息
event_name userID value created_at
-------------------------------------------------------------
last_login 12 2016-06-02 11:06:29 2016-06-02 11:06:29
last_login 12 2016-06-02 10:16:11 2016-06-02 10:16:11
last_login 14 2016-06-02 10:11:13 2016-06-02 10:11:13
last_login 17 2016-05-02 10:16:29 2016-05-02 10:16:29
last_login 14 2016-05-02 10:15:11 2016-06-02 10:15:11
预期结果:
event_name userID value created_at
-------------------------------------------------------------
last_login 12 2016-06-02 11:06:29 2016-06-02 11:06:29
last_login 14 2016-06-02 10:11:13 2016-06-02 10:11:13
last_login 17 2016-05-02 10:16:29 2016-05-02 10:16:29
我想通过 UserId 获取此表信息组,我通过 created_at 对其进行排序并在 timesAgo fromat 中显示值(例如 1 小时前),但我没有获得有关使用 group by 的最新记录,例如,对于 userID = 12 I我得到价值 = 2016-06-02 10:16:11 而不是价值 = 2016-06-02 11:06:29
【问题讨论】:
-
还要指定预期的结果!
-
你的 SQL 查询是什么?
-
value使用的 DB 数据类型是什么? -
值是
varchar(512),因为我也在存储其他事件的值,而created_at is DATETIME -
为什么用户 14 的预期结果中使用的不是最高值?
标签: mysql sql group-by sql-order-by greatest-n-per-group