mysql5.7.10和mysql5.5.39两个版本对于group by函数的处理差异
原理还是没有搞清楚,在官网上看了一下,看的不是很清楚。一并都记录一下。
问题描述:
存在如下数据结构
sql:
求用户最近更新的那条记录
思路:
按照modify_time排序后按照user_id分组。
sql如下:
SELECT * FROM ( SELECT id, doc_ass_modify_time, user_id FROM health_report_assessment hra ORDER BY doc_ass_modify_time DESC ) reportTemp GROUP BY req_user_id
改sql在 mysql5.5.39 查询结果为:
修改后的sql
SELECT
*
FROM
(
SELECT
DISTINCT id,
doc_ass_modify_time,
user_id
FROM
health_report_assessment hra
ORDER BY
doc_ass_modify_time DESC
) reportTemp
GROUP BY
req_user_id
子查询中增加了distinct的关键字。
在两个版本中,查询均取到最新的数据。
在官网查到的资料
大体了解他的意思,但也没有看出来和group by 有多大的关系。
http://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html
先记录一下,欢迎拍砖。