为什么" GROUP BY"取分组行中的第一行?

时间:2014-10-23 12:03:18

标签: mysql sql

为什么GROUP BY在分组行中占用(返回)第一行? 是否有内置的DESC或ASC订购?

1 个答案:

答案 0 :(得分:2)

MySQL扩展了GROUP BY的使用,因此选择列表可以引用GROUP BY子句中未命名的非聚合列。这意味着前面的查询在MySQL中是合法的。您可以通过避免不必要的列排序和分组来使用此功能来获得更好的性能。但是,当GROUP BY中未命名的每个非聚合列中的所有值对于每个组都相同时,这非常有用。 服务器可以自由选择每个组中的任何值,因此除非它们相同,否则所选的值是不确定的。 此外,添加ORDER BY子句不会影响每个组中值的选择。选择值后会对结果集进行排序,而ORDER BY不会影响服务器选择的每个组中的值。

http://dev.mysql.com/doc/refman/5.0/en/group-by-handling.html