지원되지 않는 버전 :6.3
이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.
PostgreSQL
이전 다음

제 34 장. SQL 확장 : 토토 결과

Postgre의 골재는 상태로 표현됩니다 전환 기능. 즉, 집계는 용어로 정의 될 수 있습니다 인스턴스가 처리 될 때마다 수정 된 상태. 일부 상태 함수는 인스턴스에서 특정 값을 살펴 봅니다. 새로운 상태 계산 (Create Aggregate Syntax에서 SFUNC1) 다른 사람들은 자신의 내부 상태를 추적합니다 (sfunc2). sfunc1 만 사용하는 집계를 정의하면 속성 값의 실행중인 함수를 계산하는 집계 각 인스턴스에서. "Sum"은 이런 종류의 집계의 예입니다. "Sum"은 0에서 시작하여 항상 현재 인스턴스의 값을 추가합니다. 런닝 총계까지. 우리는 내장 된 int4pl을 사용합니다 이 추가를 수행하기위한 Postgres.

토토 결과 complex_sum 만들기 (
              sfunc1 = complex_add,
              BaseType = Complex,
              stype1 = complex,
              initcond1 = '(0,0)'
           );

         test_complex에서 complex_sum (a)을 선택하십시오.

         +------------+
         | complex_sum |
         +------------+
         | (34,53.9) |
         +-----------+

우리가 sfunc2 만 정의하면 토토 결과를 지정합니다. 속성과 무관 한 실행중인 함수를 계산합니다. 각 인스턴스의 값. "수"가 가장 일반적인 예입니다 이런 종류의 토토 결과. "카운트"는 0에서 시작하여 하나를 추가합니다 인스턴스 값을 무시하고 각 인스턴스에 대해 총을 실행합니다. 여기, 우리는 내장 된 INT4Inc 루틴을 사용하여 우리를 위해 일을합니다. 이것 일상적인 증가 (하나에 추가) 인수.

토토 결과 생성 my_count (sfunc2 = int4inc, - 하나를 추가하십시오
                                      BaseType = int4, stype2 = int4,
                                      initcond2 = '0')

         emp에서 emp_count로 my_count (*)를 선택하십시오.

         +----------+
         | emp_count |
         +----------+
         | 5 |
         +----------+

"평균"은 둘 다 필요한 토토 결과의 예입니다. 실행중인 합계와 계산하는 함수를 계산하는 함수 런닝 카운트. 모든 인스턴스가 처리되면 토토 결과에 대한 최종 답변은 달리기 합계가 런닝 카운트. 우리는 사용한 int4pl 및 int4inc 루틴을 사용합니다 Postgres Integer Division 루틴, int4div, 계수별로 합계를 계산하려면

토토 결과 생성 my_average (sfunc1 = int4pl, - sum
                                        BaseType = int4,
                                        stype1 = int4,
                                        sfunc2 = int4inc, - count
                                        stype2 = int4,
                                        finalfunc = int4div, - 부서
                                        initcond1 = '0',
                                        initcond2 = '0')

         emp에서 emp_average로 my_average (Salary)를 선택하십시오.

         +------------+
         | emp_average |
         +------------+
         | 1640 |
         +-----------+

이전 다음
SQL 확장 : 연산자 up 인터페이스 지수 확장