我正在尝试向预先存在的应用程序添加功能,我遇到了类似这样的MySQL视图:
SELECT
AVG(table_name.col1),
AVG(table_name.col2),
AVG(table_name.col3),
table_name.personID,
table_name.col4
FROM table_name
GROUP BY table_name.personID;
Run Code Online (Sandbox Code Playgroud)
好的,所以有一些聚合函数.您可以选择personID,因为您正在对其进行分组.但它也是选择一个不在聚合函数中的列,而不是GROUP BY子句的一部分.这怎么可能???它只是选择一个随机值,因为每个组的值绝对不是唯一的吗?
我来自哪里(MSSQL Server),这是一个错误.有人可以向我解释这种行为以及为什么它在MySQL中被允许?