
# DROP AGGREGATE
#### 功能描述
删除一个聚集函数。
#### 注意事项
DROP AGGREGATE删除一个现存的聚集函数，执行这条命令的用户必须是该聚集函数的所有者。
#### 语法格式
```
DROP AGGREGATE [ IF EXISTS ] name ( argtype [ , ... ] ) [ CASCADE | RESTRICT ];
```
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/figure/zh-cn_image_0000002527058326.png "点击放大")
#### 参数说明
- **IF EXISTS**
  如果指定的聚集函数不存在，会产生一个NOTICE提示，但不会产生一个错误。
  
- **name**
  现存的聚集函数名（可以有模式修饰）。
  
- **argtype**
  聚集函数操作的输入数据类型，要引用一个零参数聚集函数，请用\*代替输入数据类型列表。
  
- **CASCADE**
  级联删除依赖于这个聚集函数的对象。
  
- **RESTRICT**
  如果有任何依赖对象，则拒绝删除这个聚集函数。这是缺省处理。
  
 
#### 示例
```
-- 创建自定义函数。
gaussdb=# CREATE OR REPLACE FUNCTION int_add(int,int)
RETURNS int AS $BODY$
DECLARE
BEGIN
RETURN $1 + $2;
END;
$BODY$ language plpgsql;
-- 创建聚集函数。
gaussdb=# CREATE AGGREGATE myavg (int)
(
    sfunc = int_add,
    stype = int,
    initcond = '0'
);
--将int类型的聚集函数myavg删除。
gaussdb=# DROP AGGREGATE myavg(int);
-- 删除自定义函数。
gaussdb=# DROP FUNCTION int_add(int,int);
```
#### 相关链接
[ALTER AGGREGATE](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0477.html#ZH-CN_TOPIC_0000002558945977)，[CREATE AGGREGATE](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0532.html#ZH-CN_TOPIC_0000002527986136)
#### 兼容性
SQL 标准里没有DROP AGGREGATE语句。
