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 ,至於爲什麼後面跟的數據那麼大,這是因爲當要分組的數量超過這個數量是會出錯的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章