# DROP AGGREGATE
#### 功能描述
从数据库中删除一个聚集函数。
#### 注意事项
仅聚集函数的所有者可以对该聚集函数进行DROP AGGREGATE操作。
#### 语法格式
```
DROP AGGREGATE [ IF EXISTS ] name ( argtype [ , ... ] ) [ CASCADE | RESTRICT ];
```
![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/figure/zh-cn_image_0000002764469450.png "点击放大")
#### 参数说明
- **IF EXISTS**
  判断指定的聚集函数是否存在。
  - 如果指定的聚集函数存在，则删除成功。
  
  - 如果指定的聚集函数不存在，不会进行删除操作，仅产生一个NOTICE提示，用于告知指定的聚集函数不存在。
   
- **name**
  需要删除的聚集函数，可以使用模式进行具体指定。
  
- **argtype**
  聚集函数操作的输入数据类型。当指定的聚集函数为零参数类型时，请用\*代替输入数据类型列表。
  
- **CASCADE** **\|** **RESTRICT**
  可选，是否级联删除依赖于该聚集函数的对象，默认为RESTRICT。
  - 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-ref-v10-gaussdb/gaussdb-08-0179.html)，[CREATE AGGREGATE](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0237.html)
#### 兼容性
SQL标准中没有DROP AGGREGATE的语句。
