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

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

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

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

在这里插入图片描述

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

SELECT
	a.user_name,
	a.task_num,
	a.task_correct,
	a.integral_num,
	a.integral_recoder_remark,
	a.screate_time 
FROM
	(
	SELECT
		COUNT(*),
		id,
		max( task_correct ) task_correct 
	FROM
		t_integral_recoder AS q 
	WHERE
		q.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 BY
		q.sta_user_id 
	) b
	INNER JOIN t_integral_recoder a ON a.id = b.id

查询结果如下
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

早起的年轻人

创作源于分享

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值