我正在整理我的SQL知识,我遇到了一个应该导致错误的例子。我正在使用MySQL。
SQL语句如下所示:
SELECT price, COUNT(*) As num_products FROM product
我得到了这样的结果:
preco count(* 100 9
为什么这样简单的列和聚合的混合工作?
发布于 2019-04-15 12:24:10
查询使用聚合函数,这意味着查询返回一组数据。因此,此查询的行为类似于使用GROUP语句进行查询。如果在这种情况下禁用了MySQL模式,则通过不会出错。官方文件说:
如果查询具有聚合函数而没有GROUP BY子句,则不能在启用ONLY_FULL_GROUP_BY的情况下使select列表中的非聚合列具有条件或顺序:
您可以在正式文件中获得有关此行为的更多信息。
https://stackoverflow.com/questions/55689064
相似问题