지원되는 버전 :48006000004800600000600토토 사이트48006000006000004800500004800600000600000480048005000000000(4800 |6000 사설 토토 사이트0 |4800 |6000 사설 토토 사이트0 |6000 사설 토토 사이트0 |_4800 |6000 사설 토토 사이트0 |6000 사설 토토 사이트0 |4800 |500 사설 토토 사이트0 |4800 |6000 사설 토토 사이트0 |6000 사설 토토 사이트0 |4800 |4800 |500 사설 토토 사이트0 사설 토토 사이트0 사설 토토 사이트0 사설 토토 사이트) /4800 |6000 스포츠 토토 베트맨0 |4800 |6000 스포츠 토토 베트맨0 |6000 스포츠 토토 베트맨0 |_4800 |6000 스포츠 토토 베트맨0 |6000 스포츠 토토 베트맨0 |4800 |500 스포츠 토토 베트맨0 |4800 |6000 스포츠 토토 베트맨0 |6000 스포츠 토토 베트맨0 |4800 |4800 |500 스포츠 토토 베트맨0 스포츠 토토 베트맨0 스포츠 토토 베트맨0 스포츠 토토 베트맨 / 4800 |6000 스포츠 토토 베트맨0 |4800 |6000 스포츠 토토 베트맨0 |6000 스포츠 토토 베트맨0 |_4800 |6000 스포츠 토토 베트맨0 |6000 스포츠 토토 베트맨0 |4800 |500 스포츠 토토 베트맨0 |4800 |6000 스포츠 토토 베트맨0 |6000 스포츠 토토 베트맨0 |4800 |4800 |500 스포츠 토토 베트맨0 스포츠 토토 베트맨0 스포츠 토토 베트맨0 스포츠 토토 베트맨 / 4800 |6000 배트맨 토토0 |4800 |6000 배트맨 토토0 |6000 배트맨 토토0 |_4800 |6000 배트맨 토토0 |6000 배트맨 토토0 |4800 |500 배트맨 토토0 |4800 |6000 배트맨 토토0 |6000 배트맨 토토0 |4800 |4800 |500 배트맨 토토0 배트맨 토토0 배트맨 토토0 배트맨 토토 / 4800 |6000 배트맨 토토0 |4800 |6000 배트맨 토토0 |6000 배트맨 토토0 |_4800 |6000 배트맨 토토0 |6000 배트맨 토토0 |4800 |500 배트맨 토토0 |4800 |6000 배트맨 토토0 |6000 배트맨 토토0 |4800 |4800 |500 배트맨 토토0 배트맨 토토0 배트맨 토토0 배트맨 토토
개발 버전 :18 / Devel
지원되지 않은 버전 :12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4
이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다48006000004800600000600토토 사이트48006000006000004800500004800600000600000480048005000000000버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

3.5. 창 메이저 토토 사이트

a창 메이저 토토 사이트수행 a 어떻게 든 관련이있는 일련의 테이블 행의 계산 현재 행. 이것은 계산 유형과 비슷합니다 집계 기능으로 수행 할 수 있습니다. 그러나 정기와는 달리 집계 함수, 창 메이저 토토 사이트를 사용하면 행이 발생하지 않습니다. 단일 출력 행으로 그룹화하려면 - 행은 별도의 신원. 무대 뒤에서 창 메이저 토토 사이트가 가능합니다 쿼리 결과의 현재 행 이상에 더 액세스하려면

각 직원의 비교 방법을 보여주는 예는 다음과 같습니다. 부서의 평균 급여와 급여 :

Depname, Empno, Salary, Avg (Salary) Over (Depname에 의한 파티션)를 선택하여 Empsalary;
Depname | Empno | 급여 |          avg          
-----------+-------+--------+-------------------------
 개발 |    11 |   5200 | 5020.00000000000000
 개발 |     7 |   4200 | 5020.00000000000000
 개발 |     9 |   4500 | 5020.00000000000000
 개발 |     8 |   6000 | 5020.00000000000000
 개발 |    10 |   5200 | 5020.00000000000000
 인원 |     5 |   3500 | 3700.00000000000000
 인원 |     2 |   3900 | 3700.00000000000000
 판매 |     3 |   4800 | 4866.666666666666667
 판매 |     1 |   5000 | 4866.666666666666667
 판매 |     4 |   4800 | 4866.666666666666667
(10 줄)

처음 3 개의 출력 열은 테이블에서 직접 나옵니다empsalary그리고 출력 행이 하나 있습니다 테이블의 각 행에 대해. 네 번째 열은 평균을 나타냅니다 동일한 모든 테이블 행을 가로 질러 촬영depname현재 행으로 값. (이것은 실제로 일반과 같은 기능avg집계 메이저 토토 사이트이지만Over절은 창으로 취급됩니다 적절한 행 세트에서 기능하고 계산됩니다.)

창 메이저 토토 사이트 호출은 항상를 포함합니다.Over창 메이저 토토 사이트에 따라 직접 조항 이름과 논쟁. 이것이 구문 적으로 구별하는 것입니다 규칙적인 기능 또는 집계 기능에서. 그만큼Over절의 행이 정확히 어떻게 결정되는지를 결정합니다 쿼리는 창 메이저 토토 사이트로 처리하기 위해 분할됩니다. 그만큼파티션 by내에서 목록Over행을 그룹으로 나누는 것을 지정합니다 파티션, 동일한 값을 공유하는파티션 by표현. 각 행에 대해 창 함수는 동일하게 떨어지는 행에 걸쳐 계산됩니다. 현재 행으로 분할.

행이 처리하는 순서도 제어 할 수 있습니다. 사용 창 메이저 토토 사이트주문 byOver. (창주문 by주문과 일치 할 필요조차 없습니다 행이 출력되는 것입니다.) 예는 다음과 같습니다.

Depname, Empno, Salary, Rank () Over (Empsalary의 Depname 주문에 의한 파티션);
Depname | Empno | 급여 | 계급 
----------+-------+--------+------
 개발 |     8 |   6000 |    1
 개발 |    10 |   5200 |    2
 개발 |    11 |   5200 |    2
 개발 |     9 |   4500 |    4
 개발 |     7 |   4200 |    5
 인원 |     2 |   3900 |    1
 인원 |     5 |   3500 |    2
 판매 |     1 |   5000 |    1
 판매 |     4 |   4800 |    2
 판매 |     3 |   4800 |    2
(10 줄)

여기에 표시된대로RANK함수 현재 행의 파티션 내에서 숫자 순위를 생성합니다. 각각 뚜렷한주문 by순서대로 값 정의주문 by조항RANK명시적인 매개 변수가 필요하지 않습니다. 그 행동은 전적으로에 의해 결정되기 때문에Over절.

창 메이저 토토 사이트로 고려되는 행은의 행입니다."가상 테이블"Query 's에서 생성From조항에 의해 필터링 된 조항어디, 그룹 by클로즈가있는 경우. 예를 들어, 행입니다 충족하지 않기 때문에 제거여기서조건은 윈도우 메이저 토토 사이트로 표시되지 않습니다. 쿼리에 포함될 수 있습니다 데이터를 다른 방식으로 슬라이스하는 여러 창 기능 다른 방법으로Over조항이지만 그들은 모두이 가상에 의해 정의 된 동일한 행 모음에 작용합니다. 테이블.

우리는 이미 그것을 보았습니다주문 by할 수 있습니다 행의 순서가 중요하지 않은 경우 생략했습니다. 그것은 또한 생략 가능파티션 by케이스 모든 행이 포함 된 단 하나의 파티션이 있습니다.

창과 관련된 또 다른 중요한 개념이 있습니다 메이저 토토 사이트 : 각 행마다 그 안에 행이 있습니다. 파티션은이라고 불렀습니다.창 프레임. 많은 (전부는 아님) 창 메이저 토토 사이트는 창의 행에서만 행동합니다. 전체 파티션이 아닌 프레임. 기본적으로 if주문 by그 다음 프레임이 제공됩니다 파티션 시작부터 현재 행, 전류와 동일한 다음 행 에 따라 행주문 by절. 언제주문 by기본 프레임이 생략되었습니다 파티션의 모든 행으로 구성됩니다.[1]여기를 사용하는 예는입니다.Sum:

empsalary에서 ()을 선택한 급여, 금액 (Salary)을 선택하십시오.
급여 |  합집합  
--------+-------
   5200 | 47100
   5000 | 47100
   3500 | 47100
   4800 | 47100
   3900 | 47100
   4200 | 47100
   4500 | 47100
   4800 | 47100
   6000 | 47100
   5200 | 47100
(10 줄)

위, 없기 때문에주문 byin 그만큼Over조항, 창 프레임은 파티션과 동일합니다.파티션 by전체 테이블입니다. 다시 말해서 합계는 전체 테이블을 인수하여 동일한 결과를 얻습니다. 각 출력 행. 그러나 우리가 추가하면주문 by절, 우리는 매우 다른 결과를 얻습니다.

empsalary의 급여, 금액 (급여)을 선택하십시오.
급여 |  합집합  
--------+-------
   3500 |  3500
   3900 |  7400
   4200 | 11600
   4500 | 16100
   4800 | 25700
   4800 | 25700
   5000 | 30700
   5200 | 41100
   5200 | 41100
   6000 | 47100
(10 줄)

여기에서 합계는 첫 번째 (가장 낮은) 급여에서 가져옵니다. 현재 중복의 중복을 포함하여 현재 (복제 된 급여의 결과를 주목하십시오).

창 메이저 토토 사이트는에서만 허용됩니다.select목록 및주문 에 의해쿼리 조항. 그들은 다른 곳에서 금지되어 있습니다 안에그룹 by, and여기서조항. 처리 후 논리적으로 실행되기 때문입니다. 그 조항. 또한 창 메이저 토토 사이트는 정기 후에 실행됩니다 집계 기능. 이것은 집계를 포함하는 것이 유효하다는 것을 의미합니다 기능 호출은 창 메이저 토토 사이트의 인수에서 호출하지만 vice는 아닙니다. Versa.

창 뒤에 필터링 또는 그룹 행이 필요한 경우 계산이 수행되며 하위 선택을 사용할 수 있습니다. 을 위한 예:

Depname, Empno, Salary, enroll_date를 선택하십시오
에서
  (Depname, Empno, Salary, enroll_date,
          rank () Over (POS로서 DEPNAME ORDER에 의한 분할) POS로
     empsalary에서
  ) SS로서
여기서 pos <3;

위의 쿼리는 내부 쿼리의 행만 표시RANK3보다 작습니다.

쿼리에 여러 개의 창 메이저 토토 사이트가 포함되면 가능합니다. 별도의 것을 기록하려면Over조항이지만 동일하면 복제적이고 오류가 발생하기 쉽습니다. 윈도우 동작은 여러 기능에 대해 원합니다. 대신, 각각 윈도우 동작은 A에서 이름을 지정할 수 있습니다.절과 참조Over. 예를 들어:

W에서 W, AVG (급여)를 통해 합 (급여)을 선택하십시오
  empsalary에서
  Window W as (Salary Desc의 Depname Order에 의한 파티션);

창 메이저 토토 사이트에 대한 자세한 내용은 찾을 수 있습니다.섹션 4.2.8, PostgreSQL : 문서 : 9.3 : 창 롤 토토, 섹션 7.2.4, 그리고select참조 페이지.

노트

[1]

다른 방식으로 창 프레임을 정의하는 옵션이 있지만 이 튜토리얼은 그것들을 다루지 않습니다. 보다섹션 4.2.8자세한 내용.