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, 하나의 출력이 있습니다
테이블의 각 행에 대해 행. 네 번째 열은 an을 나타냅니다
동일한 모든 테이블 행을 가로 질러 평균depname현재 행으로 값.
(이것은 실제로 일반과 같은 기능입니다avg
집계 토토 사이트 추천이지만Over절은 창으로 취급됩니다
적절한 행 세트에서 기능하고 계산됩니다.)
창 토토 사이트 추천 호출은 항상를 포함합니다.Over창 직접 조항 기능의 이름과 인수. 이것이 구문 적으로 무엇이 것입니다 규칙적인 토토 사이트 추천 또는 집계 토토 사이트 추천와 구별됩니다. 그만큼Over조항은 정확히 방법을 결정합니다 쿼리의 행은 창으로 처리하기 위해 분할됩니다. 기능. 그만큼파티션 by내에서 목록Over행을 구분하는 것을 지정합니다 동일한 값의 값을 공유하는 그룹 또는 파티션파티션 by표현. 각각에 대해 행, 창 토토 사이트 추천는 떨어지는 행에 계산됩니다. 현재 행과 같은 파티션으로.
행이 처리하는 순서도 제어 할 수 있습니다. 사용 창 토토 사이트 추천주문 by내Over. (창주문 by주문과 일치 할 필요조차 없습니다 행이 출력되는 것입니다.) 예는 다음과 같습니다.
Depname, Empno, Salary, Rank () Over (Empsalary의 Depname Order에 의한 파티션);
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절.
창 토토 사이트 추천로 고려되는 행은의 행입니다."가상 테이블"쿼리From조항에 의해 필터링 된 조항여기서, 그룹 에 의해및클로즈가있는 경우. 을 위한 예를 들어, 행은를 충족하지 않기 때문에 제거되었습니다.여기서조건은 어떤 창에서도 보이지 않습니다 기능. 쿼리에는 여러 개의 창 토토 사이트 추천가 포함될 수 있습니다 다른 방식으로 데이터를 다른 방식으로 슬라이스Over클로즈이지만 모두 행동합니다 이 가상 테이블에 의해 정의 된 동일한 행 모음.
우리는 이미 그것을 보았습니다주문 by할 수 있습니다 행의 순서가 중요하지 않은 경우 생략했습니다. 그것은 또한 생략 가능파티션 by케이스 모든 행이 포함 된 단 하나의 파티션이 있습니다.
창과 관련된 또 다른 중요한 개념이 있습니다
토토 사이트 추천 : 각 행마다 그 안에 행이 있습니다.
파티션은이라고 불렀습니다.창 프레임. 많은
(전부는 아님) 창 토토 사이트 추천는 창의 행에서만 행동합니다.
전체 파티션이 아닌 프레임. 기본적으로 if주문 by그 다음 프레임이 제공됩니다
파티션 시작부터 모든 행으로 구성됩니다.
현재 행, 그리고 다음 행과 같은 행
현재 행주문 by절. 언제주문 by생략되었습니다
기본 프레임은 파티션의 모든 행으로 구성됩니다.[1]여기를 사용하는 예는입니다.Sum
:
empsalary에서 ()를 Over () Over ()를 선택하여;
급여 | 합집합 --------+------- 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여기서조항. 처리 후 논리적으로 실행되기 때문입니다. 그 조항. 또한 창 토토 사이트 추천는 정기 후에 실행됩니다 집계 기능. 이것은 포함하는 것이 유효하다는 것을 의미합니다 창 토토 사이트 추천의 인수에서 집계 함수 호출, 그러나 그 반대는 아닙니다.
창 뒤에 필터링 또는 그룹 행이 필요한 경우 계산이 수행되며 하위 선택을 사용할 수 있습니다. 을 위한 예:
Depname, Empno, Salary, enroll_date를 선택하십시오 에서 (Depname, Empno, Salary, enroll_date, rank () Over (POS로서 DEPNAME ORDER에 의한 분할) POS로 empsalary에서 ) SS로서 여기서 pos <3;
위의 쿼리는 내부 쿼리의 행만 표시합니다. hadeRANK3보다 작습니다.
쿼리에 여러 개의 창 토토 사이트 추천가 포함되면 그렇습니다 별도의 각각을 쓸 수 있습니다Over조항이지만 이것은 중복입니다 동일한 윈도우 동작이 여러 곳에서 원하는 경우 오류가 발생하기 쉽습니다. 기능. 대신, 각 윈도우 동작은 A에서 이름을 지정할 수 있습니다.창절과 참조Over. 예를 들어:
W에서 W, AVG (급여)를 통해 합 (급여)을 선택하십시오 empsalary에서 Window W as (Salary Desc의 Depname Order에 의한 파티션);
창 토토 사이트 추천에 대한 자세한 내용은 찾을 수 있습니다.섹션 4.2.8, PostgreSQL : 문서 : 9.1 : 창 토토, 섹션 7.2.4및PostgreSQL : 문서 : 9.1 : 토토참조 페이지.
[1] |
기타 창 프레임을 정의하는 옵션이 있습니다. 방법이지만이 튜토리얼은이를 다루지 않습니다. 보다섹션 4.2.8자세한 내용. |