使用 CREATE AGGREGATE 语句创建新的聚集函数,并在 sysaggregates 系统目录表中注册它。
用户定义聚集(UDA)通过执行用户实施的聚集计算来扩展数据库服务器的功能。
该语句是 SQL ANSI/ISO 标准的扩展。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
aggregate | 新聚集的名称 | 在内置聚集和 UDR 的名称中必须唯一 | 标识符 |
comb_func | 用来将部分结果合并到其它部分结果中并返回更新的部分结果的函数 | 必须同时为并行查询和顺序查询指定组合函数 | 标识符 |
final_func | 将部分结果转换到结果类型的函数 | 如果省略此项,则返回值是 iter_func 的最终结果 | 标识符 |
init_func | 初始化聚集计算所需的数据结构的函数 | 必须能够处理 NULL 参数 | 标识符 |
iter_func | 将单个值与部分结果合并并返回更新的部分结果的函数 | 必须指定迭代符函数。如果省略 init_func ,则 iter_func 必须能够处理 NULL 参数 | 标识符 |
ITER 、COMBINE 、FINAL 和 INIT 修饰符指定用户定义的聚集的支持函数。这些支持函数在创建用户定义的聚集时无需存在。
如果省略 HANDLESNULLS 修饰符,拥有 NULL 聚集参数值的行将不会对聚集计算起作用。如果您将 HANDLESNULLS 修饰符包含在内,则还必须定义所有支持函数以处理 NULL 值。
如果包含可选的 IF NOT EXISTS 关键字,且指定名称的聚集已经在当前数据库中注册过,则数据库服务器不会采取任何操作(而不是向该应用程序发送异常)。