我对 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/