为什么选择group by上的所有列不会导致错误?

时间:2016-04-05 20:26:13

标签: mysql sql

我刚注意到,如果我select * from the tableName group by columnName;,那么它不会导致错误。此外,即使我选择了非分组列。

我的理解是我们只能选择分组列和聚合列。

为什么允许这样做?幕后有什么特别之处吗?

这是SQL小提琴 http://sqlfiddle.com/#!9/d3a23/5

2 个答案:

答案 0 :(得分:1)

MySQL并未强制执行此特定语法,但您需要了解当您在查询中保留不属于GROUP BY的列时所具有的效果。

答案 1 :(得分:1)

这是因为MySQL提供的扩展。每MySQL documentation

  

MySQL扩展了GROUP BY的标准SQL使用,以便选择列表   可以引用GROUP BY子句中未命名的非聚合列。