1.语法
集合函数调用:
expr:
文字值:
子句:
框架规格:
订购期限:
提升功能:
select-stmt:
common-table-expression:
复合运算符:
加盟条款:
连接约束:
加入运营商:
订购期限:
结果栏:
表或子查询:
类型名称:
签名编号:
过滤器子句:
默认情况下,以下所示的聚合函数可用。可以使用sqlite3_create_function()
API添加用C编写的其他聚合函数
。
在任何采用单个参数的聚合函数中,该参数之前都可以带有关键字DISTINCT。在这种情况下,重复元素将被过滤,然后再传递到聚合函数中。例如,函数“ count(distinct X)”将返回X列的不同值的数目,而不是X列中非空值的总数。
如果提供了FILTER子句,则聚合中仅包含expr为true的行。
2.内置聚合函数列表
3.内置聚合函数的描述
平均(X)
avg()函数返回组中所有非NULL X的平均值。看起来不像数字的字符串和BLOB值被解释为0。只要所有输入均为整数,只要有至少一个非NULL输入,avg()的结果始终为浮点值。当且仅当没有非NULL输入时,avg()的结果才为NULL。
count(X)
count(*)
count(X)函数返回X在组中不为NULL的次数的计数。count(*)函数(不带参数)返回组中的总行数。
group_concat(X)
group_concat(X,Y)
group_concat()函数返回一个字符串,该字符串是X的所有非NULL值的并置。如果存在参数Y,则将其用作X实例之间的分隔符。如果省略Y,则使用逗号(“,”)作为分隔符。串联元素的顺序是任意的。
最大(X)
max()聚合函数返回组中所有值的最大值。最大值是在同一列的ORDER BY中最后返回的值。当且仅当组中没有非NULL值时,聚合max()才返回NULL。
最小(X)
min()聚合函数返回组中所有值的最小非空值。最小值是列的ORDER BY中显示的第一个非NULL值。当且仅当组中没有非NULL值时,聚合min()才返回NULL。
总和(X)
合计(X)
sum()和total()聚合函数返回组中所有非NULL值的总和。如果没有非NULL输入行,则sum()返回NULL,但total()返回0.0。对于没有行的总和,NULL通常不是有用的结果,但是SQL标准要求它并且大多数其他SQL数据库引擎都以这种方式实现sum(),因此SQLite以相同的方式进行操作以使其兼容。提供非标准的total()函数是解决SQL语言中此设计问题的便捷方法。
total()的结果始终是浮点值。如果所有非NULL输入均为整数,则sum()的结果为整数值。如果sum()的任何输入都不是整数或NULL,则sum()返回一个浮点值,该值可能是真实总和的近似值。
如果所有输入均为整数或NULL,并且在计算过程中的任何时候发生整数溢出,Sum()将抛出“整数溢出”异常。Total()永远不会引发整数溢出。