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

问题描述 投票:0回答:1

我正在刷新我的SQL知识,我遇到了一个应该处理错误的例子。我正在使用MySQL。

SQL语句是这样的:

 SELECT price, COUNT(*) As num_products
 FROM product

我得到了这样的结果:

 preco   count(*
  100    9

为什么这种简单的柱子和骨料混合使用?

mysql sql
1个回答
3
投票

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

如果查询具有聚合函数且没有GROUP BY子句,则在选择列表,HAVING条件或ORDER BY列表中启用ONLY_FULL_GROUP_BY时,​​它不能包含非聚合列:

您可以在the official documentation中获得有关此行为的更多信息

© www.soinside.com 2019 - 2024. All rights reserved.