group by 与 order by 同时使用后者不生效

group by 与 order by 同时使用后者不生效

首先查看版本(出问题的是5.7)
这里MySQL的版本是
在这里插入图片描述
有一张表
在这里插入图片描述
我想查询出每一个人最近的一次成绩
首先就是会想到分组

SELECT *  FROM
`student`
GROUP BY
	NAME;

在这里插入图片描述
但是这里很明显只是时间最早的分组了
然后进行改进

SELECT
* 
FROM
	`student`
GROUP BY
	NAME
ORDER BY 
	create_date
	DESC

在这里插入图片描述
发现还是没有生效
查询资料有人说必须是group by的字段也要在order by 中出现,结果还是不行
于是我想使用子查询进行获取,先进行降序排列,再group by

SELECT
	*
FROM
	(
		SELECT
			*
		FROM
			`student`
		ORDER BY
			create_date DESC
	) t
GROUP BY
	t. NAME

发现成功了
在这里插入图片描述
但是在mysql版本比较靠后的时候(出问题的测试的是5.7)还是不行,网上查询有人说是加上limit

SELECT
	*
FROM
	(
		SELECT
			*
		FROM
			`student`
		ORDER BY
			create_date DESC
			limit 10000000000
	) t
GROUP BY
	t. NAME

在这里插入图片描述
所以不行的小伙伴试试在后面加上limit ,至于为什么后面跟的数据那么大,这是因为当要分组的数量超过这个数量是会出错的

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值