选择具有简单列和聚合函数的返回结果

时间:2019-04-15 12:19:01

标签: mysql sql

我正在重新整理我的SQL知识,并且遇到了一个应该产生错误的示例。我正在使用MySQL。

SQL语句如下:

 SELECT price, COUNT(*) As num_products
 FROM product

我得到这样的结果:

 preco   count(*
  100    9

为什么混合使用简单列和聚合?

1 个答案:

答案 0 :(得分:3)

您的查询使用聚合函数,这意味着您的查询返回一组数据。因此,此查询的行为类似于使用GROUP BY语句的查询。如果在这些情况下禁用了ONLY_FULL_GROUP_BY模式,MySQL不会出错。官方文件说:

  

如果查询具有聚合函数且没有GROUP BY子句,则不能   选择列表中有未汇总的列,HAVING条件或   启用了ONLY_FULL_GROUP_BY的ORDER BY列表:

您可以在the official documentation

中获得有关此行为的更多信息