MySQL 在分组时如何决定使用哪一行的值?
id | type | timestamp
-------------------------------
1 | 3 | 2014-09-10 17:03:43
2 | 7 | 2014-09-10 17:15:00
3 | 18 | 2014-09-10 17:17:55
4 | 9 | 2014-09-10 18:01:30
5 | 18 | 2014-09-10 18:02:29
6 | 3 | 2014-09-10 18:06:26
7 | 3 | 2014-09-10 18:06:30
例如:
SELECT * FROM mytable GROUP BY type
这对时间戳有影响。
它是否使用第一个,最后一个,通过内部工作确定的东西?
最佳答案
如果不在GROUP BY
中的列上没有聚合函数(MIN、MAX、SUM
等),mysql 将返回不确定 值。在其他数据库中,这甚至是不允许的。
The server is free to choose any value from each group, so unless they are the same, the values chosen are indeterminate
但是您可以启用 ONLY FULL GROUP BY模式。
关于mysql - MySQL做GROUP BY时自然是 "choose"哪一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25917628/