所有聚合函数都具有确定性。任何时候用一组给定的输入值调用它们时,都返回相同的值。

在 OceanBase 数据库的聚合函数中,Value 表达式只能出现一个。例如:不支持 COUNT(c1, c2),仅支持COUNT(c1)

声明

AVG(([DISTINCT] expr)

说明

返回指定组中的平均值,空值被忽略。DISTINCT 选项可用于返回 expr 的不同值的平均值。若找不到匹配的行,则 AVG() 返回 NULL。

例子

COUNT

声明

COUNT([DISTINCT] expr)

说明

该函数返回 SELECT 语句检索到的行中非 NULL 值的数目。若找不到匹配的行,则 COUNT() 返回 0。DISTINCT 选项可用于返回 expr 的不同值的数目。

COUNT(*) 的稍微不同之处在于,它返回检索行的数目,不论其是否包含 NULL 值。

  1. obclient> select * from oceanbasetest;
  2. +----+------+------+
  3. | id | ip | ip2 |
  4. +----+------+------+
  5. | 1 | 4 | NULL |
  6. | 4 | 3 | NULL |
  7. +----+------+------+
  8. 3 rows in set (0.00 sec)
  9. obclient> select count(ip2), count(ip), count(distinct(ip)), count(*) from oceanbasetest;
  10. +------------+-----------+---------------------+----------+
  11. | count(ip2) | count(ip) | count(distinct(ip)) | count(*) |
  12. +------------+-----------+---------------------+----------+
  13. | 0 | 3 | 2 | 3 |
  14. +------------+-----------+---------------------+----------+

声明

MAX([DISTINCT] expr)

说明

返回指定数据中的最大值。

MAX() 的取值可以是一个字符串参数,在这些情况下,它们返回最大字符串值。DISTINCT 关键字可以被用来查找 expr 的不同值的最大值,这产生的结果与省略 DISTINCT 的结果相同。

假设表 a 有三行数据:id=1,num=10;id=2,num=20;id=3,num=30。

例子

MIN

声明

MIN([DISTINCT] expr)

说明

返回指定数据中的最小值。

MIN() 的取值可以是一个字符串参数,在这些情况下,它们返回最小字符串值。 关键字可以被用来查找 expr 的不同值的最小值,然而,这产生的结果与省略 DISTINCT 的结果相同。

例子

  1. obclient> SELECT MIN(num) FROM a;
  2. +----------------+
  3. | MIN(num) |
  4. +----------------+
  5. | 10 |
  6. +----------------+
  7. 1 row in set (0.00 sec)

声明

SUM([DISTINCT] expr)

说明

返回 expr 的总数。若返回集合中无任何行,则 SUM() 返回 NULL。DISTINCT 关键字可用于求得 expr 不同值的总和。

若找不到匹配的行,则 SUM() 返回 NULL。

例子

GROUP_CONCAT

声明

GROUP_CONCAT([DISTINCT] expr)

说明

该函数返回带有来自一个组的连接的非 NULL 值的字符串结果。

  1. GROUP_CONCAT([DISTINCT] expr [,expr ...]
  2. [ORDER BY {unsigned_integer | col_name | expr}

例子