我正在重新整理我的SQL知识,并且遇到了一个应该产生错误的示例。我正在使用MySQL。
SQL语句如下:
SELECT price, COUNT(*) As num_products
FROM product
我得到这样的结果:
preco count(*
100 9
为什么混合使用简单列和聚合?
答案 0 :(得分:3)
您的查询使用聚合函数,这意味着您的查询返回一组数据。因此,此查询的行为类似于使用GROUP BY语句的查询。如果在这些情况下禁用了ONLY_FULL_GROUP_BY模式,MySQL不会出错。官方文件说:
中获得有关此行为的更多信息如果查询具有聚合函数且没有GROUP BY子句,则不能 选择列表中有未汇总的列,HAVING条件或 启用了ONLY_FULL_GROUP_BY的ORDER BY列表: