{"Entry":{"collection":"sql","key":"drop-aggregate","name":"DROP AGGREGATE","aliases":["dropaggregate"],"metadata":{"aliases":["dropaggregate"],"changed_in":["7.2","7.3","8.2","9.2","9.4","10"],"changes":[{"from":"6.5","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","compatibility"],"removed":[]},"status":"changed","synopsis":null,"to":"7.0"},{"from":"7.0","purpose_changed":false,"renamed":{"from_file":"sql-dropaggregate.htm","to_file":"sql-dropaggregate.html"},"sections":{"added":[],"changed":[],"removed":[]},"status":"changed","synopsis":null,"to":"7.1"},{"from":"7.1","purpose_changed":true,"renamed":null,"sections":{"added":[],"changed":["usage","compatibility"],"removed":[]},"status":"changed","synopsis":{"added":["DROP AGGREGATE name ( type )"],"removed":[]},"to":"7.2"},{"from":"7.2","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":{"added":["DROP AGGREGATE name ( type ) [ CASCADE | RESTRICT ]"],"removed":[]},"to":"7.3"},{"from":"7.3","purpose_changed":true,"renamed":null,"sections":{"added":["parameters","examples","see_also"],"changed":["description","compatibility"],"removed":["usage"]},"status":"changed","synopsis":null,"to":"7.4"},{"from":"8.1","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":{"added":["DROP AGGREGATE [ IF EXISTS ] name ( type [ , ... ] ) [ CASCADE | RESTRICT ]"],"removed":[]},"to":"8.2"},{"from":"8.2","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":null,"to":"8.3"},{"from":"9.1","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":{"added":["DROP AGGREGATE [ IF EXISTS ] name ( argtype [ , ... ] ) [ CASCADE | RESTRICT ]"],"removed":["DROP AGGREGATE [ IF EXISTS ] name ( type [ , ... ] ) [ CASCADE | RESTRICT ]"]},"to":"9.2"},{"from":"9.3","purpose_changed":false,"renamed":null,"sections":{"added":["notes"],"changed":["parameters","examples"],"removed":[]},"status":"changed","synopsis":{"added":["DROP AGGREGATE [ IF EXISTS ] name ( aggregate_signature ) [ CASCADE | RESTRICT ]","* |","[ argmode ] [ argname ] argtype [ , ... ] |","[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]"],"removed":["DROP AGGREGATE [ IF EXISTS ] name ( argtype [ , ... ] ) [ CASCADE | RESTRICT ]"]},"to":"9.4"},{"from":"9.5","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"9.6"},{"from":"9.6","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["examples"],"removed":[]},"status":"changed","synopsis":{"added":["DROP AGGREGATE [ IF EXISTS ] name ( aggregate_signature ) [, ...] [ CASCADE | RESTRICT ]"],"removed":[]},"to":"10"},{"from":"11","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"12"},{"from":"16","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"17"},{"from":"18","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"19"}],"content_hash":"0020700245ef48f791699be70167484728a2d69f3dc25f7b8e7d48e9b3b18e3a","derived_content_hash":"9417d0e8866f0f06af16c2bd20591ebff04065590ab2b4113e1f4926d635b36b","editorial":{},"first_version":"6.4","group":"routine","imported_at":"2026-09-30T17:43:37.09239+08:00","last_version":"20","name":"DROP AGGREGATE","object":"AGGREGATE","position":2004,"present_in":["6.4","6.5","7.0","7.1","7.2","7.3","7.4","8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"purpose":"remove an aggregate function","purpose_zh":"","related":["alter-aggregate","create-aggregate"],"repair_provenance":{"original_source_revision":"wiki-repair-20261023:ed9b1b7f11d705945a696723fd7c0d67ee0c10f39f6bad23b1ad5edbc92bbe18","receipt_sha256":"f263ba03596fe5cc0f14baed13465ebdb10ed06d523abffc1212cd91c65d5c5d","repair":"wiki-repair-20261023"},"slug":"drop-aggregate","source_rev":"wiki-repair-20261023:6952e0df72711b221f497420e16d6e4c144b018f3ea354d21f313418202fc1ef","synopsis":"DROP AGGREGATE [ IF EXISTS ] name ( aggregate_signature ) [, ...] [ CASCADE | RESTRICT ]\n\nwhere aggregate_signature is:\n\n* |\n[ argmode ] [ argname ] argtype [ , ... ] |\n[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]","verb":"DROP"}},"Definition":{"Collection":"sql","Key":"drop-aggregate","SourceDatabase":"center","Version":"18","SourceTable":"sqlcmd","SourceKey":"drop-aggregate","SourceRevision":"wiki-repair-20261023:6952e0df72711b221f497420e16d6e4c144b018f3ea354d21f313418202fc1ef","Facts":{"anchor":"SQL-DROPAGGREGATE","description_zh":"移除一个聚合函数","description_zh_html":"\u003cpre\u003eDROP AGGREGATE [ IF EXISTS ] name ( aggregate_signature ) [, ...] [ CASCADE | RESTRICT ]\n\n其中 aggregate_signature 是：\n\n* |\n[ argmode ] [ argname ] argtype [ , ... ] |\n[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]\u003c/pre\u003e\u003csection\u003e\u003ch2\u003e描述\u003c/h2\u003e\u003cp\u003e\n\u003ccode class=\"command\"\u003eDROP AGGREGATE\u003c/code\u003e 移除一个现有聚合函数。要执行此命令，当前用户必须是该聚合函数的拥有者。\n  \u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e参数\u003c/h2\u003e\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eIF EXISTS\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e\n      如果该聚合函数不存在，则不要抛出错误。这种情况下会发出一个提示。\n     \u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e\n      现有聚合函数的名称（可以用模式限定）。\n     \u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e\n      参数的模式：\u003ccode class=\"literal\"\u003eIN\u003c/code\u003e 或 \u003ccode class=\"literal\"\u003eVARIADIC\u003c/code\u003e。如果省略，默认为 \u003ccode class=\"literal\"\u003eIN\u003c/code\u003e。\n     \u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e\n      一个参数的名称。注意，\u003ccode class=\"command\"\u003eDROP AGGREGATE\u003c/code\u003e\n      实际上不会关注参数名，因为确定聚合函数标识所需的只有参数数据类型。\n     \u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e\n      聚合函数作用于其上的输入数据类型。要引用零参数聚合函数，请在参数说明列表的位置写上\u003ccode class=\"literal\"\u003e*\u003c/code\u003e。要引用有序集聚合函数，请在直接参数说明和聚合参数说明之间写上 \u003ccode class=\"literal\"\u003eORDER BY\u003c/code\u003e。\n     \u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCASCADE\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e\n      自动删除依赖于该聚合函数的对象（例如使用它的视图），以及进一步依赖于这些对象的所有对象（参见\u003ca class=\"xref\" href=\"/zh/docs/18/ddl-depend.html\" title=\"5.15. 依赖跟踪\"\u003e第 5.15 节\u003c/a\u003e）。\n     \u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eRESTRICT\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e\n      如果有任何对象依赖于该聚合函数，则拒绝删除它。这是默认值。\n     \u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e注解\u003c/h2\u003e\u003cp\u003e\n   关于引用有序集聚合的其他语法，参见 \u003ca class=\"xref\" href=\"/zh/docs/18/sql-alteraggregate.html\" title=\"ALTER AGGREGATE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER AGGREGATE\u003c/span\u003e\u003c/a\u003e。\n  \u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e示例\u003c/h2\u003e\u003cp\u003e\n   要移除用于类型 \u003ccode class=\"type\"\u003einteger\u003c/code\u003e 的聚合函数 \u003ccode class=\"literal\"\u003emyavg\u003c/code\u003e：\n\u003c/p\u003e\u003cpre class=\"programlisting\"\u003e\nDROP AGGREGATE myavg(integer);\n\u003c/pre\u003e\u003cp\u003e\n\u003c/p\u003e\u003cp\u003e\n   要移除假想集聚合函数 \u003ccode class=\"literal\"\u003emyrank\u003c/code\u003e，它接受任意个排序列组成的列表以及与之匹配的直接参数列表：\n\u003c/p\u003e\u003cpre class=\"programlisting\"\u003e\nDROP AGGREGATE myrank(VARIADIC \"any\" ORDER BY VARIADIC \"any\");\n\u003c/pre\u003e\u003cp\u003e\n\u003c/p\u003e\u003cp\u003e\n   在一条命令中移除多个聚合函数：\n\u003c/p\u003e\u003cpre class=\"programlisting\"\u003e\nDROP AGGREGATE myavg(integer), myavg(bigint);\n\u003c/pre\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e兼容性\u003c/h2\u003e\u003cp\u003e\n   SQL 标准中没有 \u003ccode class=\"command\"\u003eDROP AGGREGATE\u003c/code\u003e 语句。\n  \u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e另见\u003c/h2\u003e\u003cspan class=\"simplelist\"\u003e\u003ca class=\"xref\" href=\"/zh/docs/18/sql-alteraggregate.html\" title=\"ALTER AGGREGATE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER AGGREGATE\u003c/span\u003e\u003c/a\u003e, \u003ca class=\"xref\" href=\"/zh/docs/18/sql-createaggregate.html\" title=\"CREATE AGGREGATE\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE AGGREGATE\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e\u003c/section\u003e","file":"sql-dropaggregate.html","lang":"en","name":"DROP AGGREGATE","purpose":"remove an aggregate function","purpose_zh":"移除一个聚合函数","related":["alter-aggregate","create-aggregate"],"sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eDROP AGGREGATE\u003c/code\u003e removes an existing aggregate function. To execute this command the current user must be the owner of the aggregate function.\u003c/p\u003e","key":"description","title":"Description"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eIF EXISTS\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eDo not throw an error if the aggregate does not exist. A notice is issued in this case.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name (optionally schema-qualified) of an existing aggregate function.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe mode of an argument: \u003ccode class=\"literal\"\u003eIN\u003c/code\u003e or \u003ccode class=\"literal\"\u003eVARIADIC\u003c/code\u003e. If omitted, the default is \u003ccode class=\"literal\"\u003eIN\u003c/code\u003e.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of an argument. Note that \u003ccode class=\"command\"\u003eDROP AGGREGATE\u003c/code\u003e does not actually pay any attention to argument names, since only the argument data types are needed to determine the aggregate function's identity.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eAn input data type on which the aggregate function operates. To reference a zero-argument aggregate function, write \u003ccode class=\"literal\"\u003e*\u003c/code\u003e in place of the list of argument specifications. To reference an ordered-set aggregate function, write \u003ccode class=\"literal\"\u003eORDER BY\u003c/code\u003e between the direct and aggregated argument specifications.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCASCADE\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eAutomatically drop objects that depend on the aggregate function (such as views using it), and in turn all objects that depend on those objects (see \u003ca href=\"/docs/18/ddl-depend.html\" title=\"5.15. Dependency Tracking\"\u003eSection 5.15\u003c/a\u003e).\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eRESTRICT\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eRefuse to drop the aggregate function if any objects depend on it. This is the default.\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"parameters","title":"Parameters"},{"html":"\u003cp\u003eAlternative syntaxes for referencing ordered-set aggregates are described under \u003ca href=\"/docs/18/sql-alteraggregate.html\" title=\"ALTER AGGREGATE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER AGGREGATE\u003c/span\u003e\u003c/a\u003e.\u003c/p\u003e","key":"notes","title":"Notes"},{"html":"\u003cp\u003eTo remove the aggregate function \u003ccode class=\"literal\"\u003emyavg\u003c/code\u003e for type \u003ccode class=\"type\"\u003einteger\u003c/code\u003e:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eDROP AGGREGATE myavg(integer);\n\u003c/pre\u003e\u003cp\u003eTo remove the hypothetical-set aggregate function \u003ccode class=\"literal\"\u003emyrank\u003c/code\u003e, which takes an arbitrary list of ordering columns and a matching list of direct arguments:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eDROP AGGREGATE myrank(VARIADIC \"any\" ORDER BY VARIADIC \"any\");\n\u003c/pre\u003e\u003cp\u003eTo remove multiple aggregate functions in one command:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eDROP AGGREGATE myavg(integer), myavg(bigint);\n\u003c/pre\u003e","key":"examples","title":"Examples"},{"html":"\u003cp\u003eThere is no \u003ccode class=\"command\"\u003eDROP AGGREGATE\u003c/code\u003e statement in the SQL standard.\u003c/p\u003e","key":"compatibility","title":"Compatibility"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/alter-aggregate/?v=18\" title=\"ALTER AGGREGATE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER AGGREGATE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/create-aggregate/?v=18\" title=\"CREATE AGGREGATE\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE AGGREGATE\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"See Also"}],"sections_same_as":"","slug":"18","synopsis_html":"DROP AGGREGATE [ IF EXISTS ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003eaggregate_signature\u003c/code\u003e\u003c/em\u003e ) [, ...] [ CASCADE | RESTRICT ]\n\n\u003cspan class=\"phrase\"\u003ewhere \u003cem class=\"replaceable\"\u003e\u003ccode\u003eaggregate_signature\u003c/code\u003e\u003c/em\u003e is:\u003c/span\u003e\n\n* |\n[ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e ] [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e [ , ... ] |\n[ [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e ] [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e [ , ... ] ] ORDER BY [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e ] [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e [ , ... ]","synopsis_text":"DROP AGGREGATE [ IF EXISTS ] name ( aggregate_signature ) [, ...] [ CASCADE | RESTRICT ]\n\nwhere aggregate_signature is:\n\n* |\n[ argmode ] [ argname ] argtype [ , ... ] |\n[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]","translation_provenance":{"inputs":[{"kind":"current-pgdoc-translation","path":"/Users/vonng/pgsty/pgdoc/zh/18/html/sql-dropaggregate.html","sha256":"f4132f7fdeeb4ec5b4b294927f129bff8e1166cb9c1862e1d08debd4195945af"}],"kind":"same-version-pgdoc","locale":"zh-Hans","source_revision":"b1b500221dbe5437cfca004d6b04d3f6e422765d","version":"18"},"zh_from":"same-version-pgdoc"},"ManualEvidence":{},"MeasuredEvidence":{}},"Text":{"Collection":"sql","Key":"drop-aggregate","SourceDatabase":"center","Version":"18","Locale":"en","Title":"DROP AGGREGATE","Summary":"remove an aggregate function","BodyHTML":"\u003cpre\u003eDROP AGGREGATE [ IF EXISTS ] name ( aggregate_signature ) [, ...] [ CASCADE | RESTRICT ]\n\nwhere aggregate_signature is:\n\n* |\n[ argmode ] [ argname ] argtype [ , ... ] |\n[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]\u003c/pre\u003e\u003csection\u003e\u003ch2\u003eDescription\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eDROP AGGREGATE\u003c/code\u003e removes an existing aggregate function. To execute this command the current user must be the owner of the aggregate function.\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003eParameters\u003c/h2\u003e\u003cdiv\u003e\u003cdl\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eIF EXISTS\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eDo not throw an error if the aggregate does not exist. A notice is issued in this case.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name (optionally schema-qualified) of an existing aggregate function.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe mode of an argument: \u003ccode\u003eIN\u003c/code\u003e or \u003ccode\u003eVARIADIC\u003c/code\u003e. If omitted, the default is \u003ccode\u003eIN\u003c/code\u003e.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of an argument. Note that \u003ccode\u003eDROP AGGREGATE\u003c/code\u003e does not actually pay any attention to argument names, since only the argument data types are needed to determine the aggregate function\u0026#39;s identity.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eAn input data type on which the aggregate function operates. To reference a zero-argument aggregate function, write \u003ccode\u003e*\u003c/code\u003e in place of the list of argument specifications. To reference an ordered-set aggregate function, write \u003ccode\u003eORDER BY\u003c/code\u003e between the direct and aggregated argument specifications.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eCASCADE\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eAutomatically drop objects that depend on the aggregate function (such as views using it), and in turn all objects that depend on those objects (see \u003ca href=\"/docs/18/ddl-depend.html\" rel=\"nofollow\"\u003eSection 5.15\u003c/a\u003e).\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eRESTRICT\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eRefuse to drop the aggregate function if any objects depend on it. This is the default.\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003eNotes\u003c/h2\u003e\u003cp\u003eAlternative syntaxes for referencing ordered-set aggregates are described under \u003ca href=\"/docs/18/sql-alteraggregate.html\" title=\"ALTER AGGREGATE\" rel=\"nofollow\"\u003e\u003cspan\u003eALTER AGGREGATE\u003c/span\u003e\u003c/a\u003e.\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003eExamples\u003c/h2\u003e\u003cp\u003eTo remove the aggregate function \u003ccode\u003emyavg\u003c/code\u003e for type \u003ccode\u003einteger\u003c/code\u003e:\u003c/p\u003e\u003cpre\u003eDROP AGGREGATE myavg(integer);\n\u003c/pre\u003e\u003cp\u003eTo remove the hypothetical-set aggregate function \u003ccode\u003emyrank\u003c/code\u003e, which takes an arbitrary list of ordering columns and a matching list of direct arguments:\u003c/p\u003e\u003cpre\u003eDROP AGGREGATE myrank(VARIADIC \u0026#34;any\u0026#34; ORDER BY VARIADIC \u0026#34;any\u0026#34;);\n\u003c/pre\u003e\u003cp\u003eTo remove multiple aggregate functions in one command:\u003c/p\u003e\u003cpre\u003eDROP AGGREGATE myavg(integer), myavg(bigint);\n\u003c/pre\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003eCompatibility\u003c/h2\u003e\u003cp\u003eThere is no \u003ccode\u003eDROP AGGREGATE\u003c/code\u003e statement in the SQL standard.\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003eSee Also\u003c/h2\u003e\u003cspan\u003e\u003ca href=\"/wiki/sql/alter-aggregate/?v=18\" title=\"ALTER AGGREGATE\" rel=\"nofollow\"\u003e\u003cspan\u003eALTER AGGREGATE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/create-aggregate/?v=18\" title=\"CREATE AGGREGATE\" rel=\"nofollow\"\u003e\u003cspan\u003eCREATE AGGREGATE\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e\u003c/section\u003e","SourceRevision":"wiki-repair-20261023:6952e0df72711b221f497420e16d6e4c144b018f3ea354d21f313418202fc1ef","ContentHash":"2b21fdd1082c92f7b07cd01f7eced0cf9b9d9eb69ec401ab8aa44acf956a6d35","Payload":{"related":["alter-aggregate","create-aggregate"],"sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eDROP AGGREGATE\u003c/code\u003e removes an existing aggregate function. To execute this command the current user must be the owner of the aggregate function.\u003c/p\u003e","key":"description","title":"Description"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eIF EXISTS\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eDo not throw an error if the aggregate does not exist. A notice is issued in this case.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name (optionally schema-qualified) of an existing aggregate function.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe mode of an argument: \u003ccode class=\"literal\"\u003eIN\u003c/code\u003e or \u003ccode class=\"literal\"\u003eVARIADIC\u003c/code\u003e. If omitted, the default is \u003ccode class=\"literal\"\u003eIN\u003c/code\u003e.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of an argument. Note that \u003ccode class=\"command\"\u003eDROP AGGREGATE\u003c/code\u003e does not actually pay any attention to argument names, since only the argument data types are needed to determine the aggregate function's identity.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eAn input data type on which the aggregate function operates. To reference a zero-argument aggregate function, write \u003ccode class=\"literal\"\u003e*\u003c/code\u003e in place of the list of argument specifications. To reference an ordered-set aggregate function, write \u003ccode class=\"literal\"\u003eORDER BY\u003c/code\u003e between the direct and aggregated argument specifications.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCASCADE\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eAutomatically drop objects that depend on the aggregate function (such as views using it), and in turn all objects that depend on those objects (see \u003ca href=\"/docs/18/ddl-depend.html\" title=\"5.15. Dependency Tracking\"\u003eSection 5.15\u003c/a\u003e).\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eRESTRICT\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eRefuse to drop the aggregate function if any objects depend on it. This is the default.\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"parameters","title":"Parameters"},{"html":"\u003cp\u003eAlternative syntaxes for referencing ordered-set aggregates are described under \u003ca href=\"/docs/18/sql-alteraggregate.html\" title=\"ALTER AGGREGATE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER AGGREGATE\u003c/span\u003e\u003c/a\u003e.\u003c/p\u003e","key":"notes","title":"Notes"},{"html":"\u003cp\u003eTo remove the aggregate function \u003ccode class=\"literal\"\u003emyavg\u003c/code\u003e for type \u003ccode class=\"type\"\u003einteger\u003c/code\u003e:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eDROP AGGREGATE myavg(integer);\n\u003c/pre\u003e\u003cp\u003eTo remove the hypothetical-set aggregate function \u003ccode class=\"literal\"\u003emyrank\u003c/code\u003e, which takes an arbitrary list of ordering columns and a matching list of direct arguments:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eDROP AGGREGATE myrank(VARIADIC \"any\" ORDER BY VARIADIC \"any\");\n\u003c/pre\u003e\u003cp\u003eTo remove multiple aggregate functions in one command:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eDROP AGGREGATE myavg(integer), myavg(bigint);\n\u003c/pre\u003e","key":"examples","title":"Examples"},{"html":"\u003cp\u003eThere is no \u003ccode class=\"command\"\u003eDROP AGGREGATE\u003c/code\u003e statement in the SQL standard.\u003c/p\u003e","key":"compatibility","title":"Compatibility"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/alter-aggregate/?v=18\" title=\"ALTER AGGREGATE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER AGGREGATE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/create-aggregate/?v=18\" title=\"CREATE AGGREGATE\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE AGGREGATE\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"See Also"}],"sections_same_as":"","synopsis_html":"DROP AGGREGATE [ IF EXISTS ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003eaggregate_signature\u003c/code\u003e\u003c/em\u003e ) [, ...] [ CASCADE | RESTRICT ]\n\n\u003cspan class=\"phrase\"\u003ewhere \u003cem class=\"replaceable\"\u003e\u003ccode\u003eaggregate_signature\u003c/code\u003e\u003c/em\u003e is:\u003c/span\u003e\n\n* |\n[ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e ] [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e [ , ... ] |\n[ [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e ] [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e [ , ... ] ] ORDER BY [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e ] [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e [ , ... ]","synopsis_text":"DROP AGGREGATE [ IF EXISTS ] name ( aggregate_signature ) [, ...] [ CASCADE | RESTRICT ]\n\nwhere aggregate_signature is:\n\n* |\n[ argmode ] [ argname ] argtype [ , ... ] |\n[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]"}},"RequestedLocale":"en","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","6.4","6.5","7.0","7.1","7.2","7.3","7.4","8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
