更新时间:2024-12-04 GMT+08:00
分享

聚合函数

表1 聚合函数列表

MySQL数据库

GaussDB数据库

差异

AVG()

支持,存在差异

  • GaussDB中指定DISTINCT且SQL语句包含GROUP BY子句时,不对结果进行排序,MySQL会进行排序。
  • GaussDB中当expr中的列为BIT、BOOL、整数类型,且所有行的和超过BIGINT的范围时,会发生溢出导致整数翻转。

BIT_AND()

支持

-

BIT_OR()

支持

-

BIT_XOR()

支持

-

COUNT()

支持,存在差异

GaussDB中指定DISTINCT且SQL语句包含GROUP BY子句时,不对结果进行排序,MySQL会进行排序。

GROUP_CONCAT()

支持,存在差异

  • GaussDB中指定DISTINCT且SQL语句包含GROUP BY子句时,不对结果进行排序,MySQL会进行排序。
  • GaussDB中当GROUP_CONCAT参数中同时有DISTINCT和ORDER BY语法时,所有ORDER BY后的表达式必须也在DISTINCT的表达式之中。
  • GaussDB中GROUP_CONCAT(... ORDER BY 数字)不代表按照第几个参数的顺序,数字只是一个常量表达式,相当于不排序。
  • GaussDB中使用参数group_concat_max_len限制GROUP_CONCAT最大返回长度,超长截断,目前能返回的最大长度是1073741823,小于MySQL。

MAX()

支持,存在差异

GaussDB中指定DISTINCT且SQL语句包含GROUP BY子句时,不对结果进行排序,MySQL会进行排序。当参数为非表字段时,MAX函数返回值类型和MySQL 5.7不一致。

MIN()

支持,存在差异

GaussDB中指定DISTINCT且SQL语句包含GROUP BY子句时,不对结果进行排序,MySQL会进行排序。当参数为非表字段时,MIN函数返回值类型和MySQL 5.7不一致。

SUM()

支持,存在差异

  • GaussDB中指定DISTINCT且SQL语句包含GROUP BY子句时,不对结果进行排序,MySQL会进行排序。
  • GaussDB中当expr中的列为BIT、BOOL、整数类型,且所有行的和超过BIGINT的范围时,会发生溢出导致整数翻转。

相关文档