Advertisement

MySQL - group by 取最大、最小值记录

阅读量:

mysql group by 取最大,最小值那条记录

Max.Bai
2020-08

目录

mysql group by 取最大,最小值那条记录

0. 表结构

1. 需求

2. 思路

3. 脚本


在实际应用中,常常需要对数据进行分组操作,并从中提取出每组中的最大或最小值对应的完整记录。然而,在使用group by语句时,默认情况下所获取到的max或min值往往无法直接关联到具体的记录行。
在网络资源中曾有相关讨论,尝试通过先排序再进行group by操作,但结果仍不理想。直至在某篇文章的评论区,有经验丰富的用户提供了有效的解决方案,现将相关内容整理如下。

0. 数据表结构定义

table user
id
name
time_mins -- 用户在线时长,单位为分钟
login_time -- 用户登录时间

1. 需求

检索每位用户单次在线时长最久的记录

  1. 思路

首先进行排序操作,按照name和time_mins字段进行降序排列。此处需要特别注意的是,在查询语句中添加having子句,其作用是实现结果集的分组排序。这一技巧的运用能够确保最终输出按照指定的组别进行排列,有相关讨论可参考<>>。接着执行group by name, time_

全部评论 (0)

还没有任何评论哟~