关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
工具指南
数据类型
存储引擎
执行引擎
流计算引擎
灾难恢复
系统配置参数
索引
扩展
SQL 参考
常见问题(FAQ)
修改聚合函数的定义
ALTER AGGREGATE <name> ( <aggregate_signature> ) RENAME TO <new_name>
ALTER AGGREGATE <name> ( <aggregate_signature> )
OWNER TO { <new_owner> | CURRENT_USER | SESSION_USER }
ALTER AGGREGATE <name> ( <aggregate_signature> ) SET SCHEMA <new_schema>
where <aggregate_signature> is:
* |
[ <argmode> ] [ <argname> ] <argtype> [ , ... ] |
[ [ <argmode> ] [ <argname> ] <argtype> [ , ... ] ] ORDER BY [ <argmode> ] [ <argname> ] <argtype> [ , ... ]
ALTER AGGREGATE 用来修改一个聚集函数的定义
你必须是该聚集函数的所有者才能使用 ALTER AGGREGATE. 要更改聚集函数的模式, 你还必须拥有新模式的 CREATE 权限。要更改聚集函数的所有者,你还必须是新角色的直接或者成员,而且新角色必须在聚集函数的模式上面拥有 CREATE 权限。(这些限制强制要求拥有者不能通过丢弃并重建该聚集函数来做任何不能做的事情。然而,超级用户可以改变任何聚合函数的所有权。)
引用有序集合聚合的推荐语法是在直接参数和聚合参数规范之间写入ORDER BY,其风格与CREATE AGGREGATE中的用法一致。但省略 ORDER BY 并直接将直接参数和聚合参数规范合并为单一列表的形式同样有效。在这种简写形式中,若直接参数列表和聚合参数列表均使用了VARIADIC “any”,则仅需编写一次VARIADIC “any”。
将 integer 类型的聚集函数 myavg 重命名为 my_average:
ALTER AGGREGATE myavg(integer) RENAME TO my_average;
将 integer 类型的聚集函数 myavg 的所有者改为 joe:
ALTER AGGREGATE myavg(integer) OWNER TO joe;
将有序集合聚合函数mypercentile(直接参数类型为float8,聚合参数类型为integer)移入模式myschema:
ALTER AGGREGATE mypercentile(float8 ORDER BY integer) SET SCHEMA myschema;
以下语法同样有效:
ALTER AGGREGATE mypercentile(float8, integer) SET SCHEMA myschema;
SQL标准中没有ALTER AGGREGATE 语句。