首页 > 编程知识 正文

MySql 分组查询并获取每组数据的最大值

时间:2023-05-05 02:00:28 阅读:273432 作者:466

人生的路到底有多远并不重要,当务之急是珍惜生命的每一秒;不管事情变得多坏,在不远的地方,相信总会有一些美好即将来临

MySql 当数据量大的时候,有人说需要添加索引,以及数据分页查询,但我要说的是不单单是这些,比如说加索引,什么样的索引效果最佳,索引实现的原理是什么样的,数据量大的时候我要查询一个最大值怎么办 等等一系列的细节。

在MySQL中当有多个索引时 你知道MySQL是如何选择索引的吗 ?MySql 你真的会使用字符串索引吗???MySql 应该选择普通索引 还是唯一 索引???MySql 一条普通的查询语句 你知道如何优雅的使用 前缀索引、索引下推优化查询速度吗?MySql 一条普通的查询语句 你知道需要执行几次树的搜索操作以及会扫描多少行吗??? MySql 索引覆盖

本文章的主要内容是 根据用户的ID来分组查询并获取每组的最大值,如下图所示

我一张普通的积分记录表中,查询出符合条件的数据有3条,当然这是我针对一个用户来查询的,假如我需要获取这三条数据中的 task_correct 最大值的那一条记录,我们可以这样来写

SELECTa.user_name,a.task_num,a.task_correct,a.integral_num,a.integral_recoder_remark,a.screate_time FROM(SELECTCOUNT(*),id,max( task_correct ) task_correct FROMt_integral_recoder AS q WHEREq.sta_mine_id = 54 AND q.category_one = "E0B2E1F8-498E-44" AND q.category_two = "488863BE-9F55-4C" AND q.user_name = "用户姓名" AND q.screate_time BETWEEN "2021-06-01" AND "2021-07-31" GROUP BYq.sta_user_id ) bINNER JOIN t_integral_recoder a ON a.id = b.id

查询结果如下

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。