이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.범퍼카 토토 PostgreSQL : 문서 : 17 : 36.12. 사용자 정의 골재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

15장. 확장SQL: 토토 사이트 순위

토토 사이트 순위 함수포스트그레SQL다음과 같이 표현됩니다상태 값그리고상태 전환 기능. 즉, 집계는 다음과 같이 정의될 수 있습니다. 입력 항목이 바뀔 때마다 수정되는 상태 조건 처리됨. 새로운 토토 사이트 순위 함수를 정의하려면 데이터를 선택합니다. 상태 값의 유형, 상태의 초기 값 및 상태 전환 기능. 상태 전이 기능은 단지 컨텍스트 외부에서도 사용할 수 있는 일반 함수 집계의. 갑최종 기능할 수 있다 원하는 집계 출력이 다음과 같은 경우에도 지정됩니다. 실행 중에 보관해야 하는 데이터와 다릅니다. 상태 값.

따라서 다음에서 볼 수 있는 입력 및 결과 데이터 유형 외에도 집계 사용자에게는 내부 상태 값 데이터 유형이 있습니다. 입력 및 결과 유형과 다를 수 있습니다.

최종 함수를 사용하지 않는 집계를 정의하면, 우리는 다음의 실행 함수를 계산하는 집계를 가지고 있습니다. 각 행의 열 값입니다.합계이다 이런 종류의 토토 사이트 순위의 예입니다.합계0에서 시작하여 항상 현재 값을 더합니다. 행의 값을 누적 합계로 계산합니다. 예를 들어, 우리가 만들고 싶다면 에합계데이터 작업을 위해 집계 복소수를 입력하려면 덧셈 함수만 필요합니다. 해당 데이터 유형. 집계 정의는 다음과 같습니다.

집합 complex_sum 생성(
    sfunc = complex_add,
    기본 유형 = 복합,
    유형 = 복합,
    initcond = '(0,0)'
);
test_complex에서 complex_sum(a) 선택;

 complex_sum
-------------
 (34,53.9)

(실제로는 토토 사이트 순위 이름만 지정합니다.합계그리고 의지합니다포스트그레SQL어떤 종류의 합계를 알아내기 위해 유형의 열에 적용하려면복잡한.)

위의 정의합계할 것이다 없는 경우 0(초기 상태 조건)을 반환합니다. null이 아닌 입력 값. 아마도 우리는 NULL을 반환하고 싶을 것입니다. 대신 --- SQL 표준에서는 다음과 같이 예상합니다.그렇게 행동해요. 우리는 이것을 간단하게 할 수 있습니다 을 생략하여initcond문구, 그래서 초기 상태 조건은 NULL입니다. 일반적으로 이는 다음을 의미합니다. 그sfunc다음을 확인해야 합니다. NULL 상태-조건 입력, 그러나 for합계그리고 다음과 같은 다른 간단한 집계최대그리고, 첫 번째를 삽입하면 충분합니다. null이 아닌 입력 값을 상태 변수에 넣은 다음 시작합니다. null이 아닌 두 번째 입력에 전환 함수 적용 값.PostgreSQL그러겠습니다 초기 조건이 NULL이고 전환이 발생하면 자동으로 기능이 표시됨"엄격"(즉, 아님 NULL 입력에 대해 호출됨).

a에 대한 또 다른 기본 동작"엄격"전환 기능은 이전 NULL 입력 값이 입력될 때마다 상태 값은 변경되지 않고 유지됩니다. 마주쳤다. 따라서 NULL은 무시됩니다. 다른 것이 필요하다면 NULL 입력에 대한 동작을 수행하려면 전환 함수를 다음과 같이 정의하십시오. 엄격하지 않고 NULL 입력을 테스트하도록 코딩하고 무엇이든 수행합니다. 필요합니다.

평균(평균)은 더 복잡합니다. 집계의 예. 두 가지 실행 상태가 필요합니다. 입력의 합과 입력 개수의 개수입니다. 는 최종 결과는 이 양을 나누어서 얻습니다. 평균은 일반적으로 두 요소로 구성된 배열을 사용하여 구현됩니다. 전환 상태 값. 예를 들어, 내장 구현 의평균(float8)다음과 같습니다:

총 평균 생성(
    sfunc = float8_accum,
    기본 유형 = float8,
    유형 = float8[],
    최종 기능 = float8_avg,
    initcond = '0,0'
);

자세한 내용은 다음 설명을 참조하세요.집합 생성명령참조 매뉴얼.