我对 MySQL 中的以下行为有一个非常基本的问题。

假设我们执行以下 GROUP BY :

SELECT a, b, SUM(c)
FROM table
GROUP BY b;

字段 a 会发生什么,它既不聚合也不包含在 GROUP BY 字段中?

MySQL 是否只是隐式地将 FIRST(a) 应用于 a ?如果是这样,这种行为是一致的还是从 a 的所有值中获取一个随机值?

最佳答案

它是查询处理器从存储介质取回的第一个结果值,取决于所选的查询策略。从技术上讲,这是未定义的,但是您的表除了它的键之外没有其他索引,这是合理的确定性,但是您受优化器的支配。

依赖它,您将面临危险。这就是发明窗函数的原因。

关于MySQL:GROUP BY 上的非聚合字段会发生什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31697469/

10-11 02:53
查看更多