DROP AGGREGATE — 집계 함수 제거

DROP AGGREGATE — 집계 함수 제거

DROP AGGREGATE 문으로 기존 **집계 함수(aggregate function)**를 제거합니다. 실행하려면 현재 사용자가 그 집계 함수의 소유자여야 해요. 집계 함수는 같은 이름이라도 인자 타입이 다르면 여러 개가 공존할 수 있어서, 삭제할 때 인자 시그니처를 함께 지정해야 합니다.

출처: PostgreSQL 문서

본문

개요 (Synopsis)

DROP AGGREGATE [ IF EXISTS ] name ( aggregate_signature ) [, ...] [ CASCADE | RESTRICT ]

여기서 aggregate_signature는:

* |
[ argmode ] [ argname ] argtype [ , ... ] |
[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]

설명 (Description)

DROP AGGREGATE는 기존 집계 함수를 제거해요. 이 명령을 실행하려면 현재 사용자가 그 집계 함수의 소유자여야 합니다.

매개변수 (Parameters)

  • IF EXISTS — 집계 함수가 없어도 오류를 내지 않아요. 이 경우 알림(notice)이 발행됩니다.
  • name — 기존 집계 함수의 이름(선택적으로 스키마로 한정)이에요.
  • argmode — 인자의 모드로, IN 또는 VARIADIC이에요. 생략하면 기본값은 IN이에요.
  • argname — 인자의 이름이에요. DROP AGGREGATE는 집계 함수의 정체를 결정하는 데 인자 데이터 타입만 필요하기 때문에 인자 이름은 실제로 신경 쓰지 않는다는 점을 알아두세요.
  • argtype — 집계 함수가 동작하는 입력 데이터 타입이에요. 인자가 없는 집계 함수를 참조하려면 인자 지정 목록 자리에 *를 쓰세요. 순서 집합(ordered-set) 집계 함수를 참조하려면 직접(direct) 인자 지정과 집계(aggregated) 인자 지정 사이에 ORDER BY를 씁니다.
  • CASCADE — 집계 함수에 의존하는 객체(그것을 쓰는 뷰 등)와, 그 객체들에 의존하는 모든 객체를 자동으로 삭제해요(5.15절 참고).
  • RESTRICT — 집계 함수에 의존하는 객체가 있으면 삭제를 거부해요. 이것이 기본값이에요.

참고 사항 (Notes)

순서 집합 집계를 참조하는 대안 구문은 ALTER AGGREGATE 아래에 설명되어 있어요.

예시 (Examples)

integer 타입용 집계 함수 myavg 제거하기:

DROP AGGREGATE myavg(integer);

임의의 정렬 컬럼 목록과 그에 대응하는 직접 인자 목록을 받는 가설 집합(hypothetical-set) 집계 함수 myrank 제거하기:

DROP AGGREGATE myrank(VARIADIC "any" ORDER BY VARIADIC "any");

한 명령으로 여러 집계 함수 제거하기:

DROP AGGREGATE myavg(integer), myavg(bigint);

호환성 (Compatibility)

SQL 표준에는 DROP AGGREGATE 문이 없어요.

함께 보기 (See Also)

더 알아보기 (Learn more)