MySQL 中如何使用没有 GROUP BY 的聚合函数?

DDD
发布: 2024-11-06 07:09:02
原创
308 人浏览过

How Can I Use Aggregate Functions Without GROUP BY in MySQL?

不使用 GROUP BY 的 MySQL 聚合函数:为什么以及如何

在 MySQL 中,可以在 SELECT 列表中使用聚合函数而不指定 GROUP BY子句,与 SQL Server 等其他 RDBMS 不同。这种看似意外的行为实际上是一种有意的设计选择。

当不使用 GROUP BY 的聚合函数时,MySQL 会将整个结果集视为一个组。这意味着聚合函数为查询中指定的整个表或子集返回单个值。

例如,查询 SELECT col1,col2,sum(col3) FROM tbl1;返回包含 col1 和 col2 的第一个值以及 col3 中所有值的总和的单行。在需要计算汇总统计信息而不对数据进行分组的情况下,此行为非常有用。

可以使用 ONLY_FULL_GROUP_BY 服务器 SQL 模式修改不带 GROUP BY 的聚合函数的行为。 MySQL 5.7.5之前的版本默认禁用该模式。但是,可以启用它以禁止不使用 GROUP BY 的聚合函数。

要启用 ONLY_FULL_GROUP_BY,请将以下行添加到 MySQL 配置文件(通常是 my.cnf):

sql-mode=ONLY_FULL_GROUP_BY
登录后复制

一次启用后,MySQL 将对使用不带 GROUP BY 的聚合函数的查询抛出错误。这有助于确保数据完整性并防止错误结果。

以上是MySQL 中如何使用没有 GROUP BY 的聚合函数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!