mysql 获取分组后 最早或最后的第一条数据

数据库 投稿 11800 1 评论

mysql 获取分组后 最早或最后的第一条数据

示例,现在有一用户操作日志表,现在需要获取所有用户各自最早的一次日志和最晚的一次日志,如下:

获取所有用户最早的一次日志记录:


SELECT log.*, MIN(log.create_time) AS create_time
FROM (
    SELECT `id`, `uid`, `type`, `create_time`
    FROM user_log
    ORDER BY create_time ASC
) log
GROUP BY uid;

获取所有用户最晚的一次日志记录:


SELECT log.*, MAX(log.create_time) AS create_time
FROM (
    SELECT `id`, `uid`, `type`, `create_time`
    FROM user_log
    ORDER BY create_time DESC
) log
GROUP BY uid;

编程笔记 » mysql 获取分组后 最早或最后的第一条数据

赞同 (45) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(1)个小伙伴在吐槽
  1. 并促使人们对问题进行深入讨论。
    邪恶鲜血 2023-09-09 08:00 (2年前) 回复