postgresql crosstab 예제

OUT 매개 변수를 사용하여 반환 형식을 암시적으로 정의합니다. 동일한 예제도 이 방법으로 수행할 수 있습니다: 크로스탭 함수는 동일한 row_name 값을 가진 입력 행의 각 연속된 그룹에 대해 하나의 출력 행을 생성합니다. 이러한 행의 값 필드와 함께 출력 값 열을 왼쪽에서 오른쪽으로 채웁니다. 그룹에 출력 값 열보다 적은 행이 있는 경우 추가 출력 열은 null로 채워집니다. 행이 더 많으면 추가 입력 행이 건너뜁니다. 비 예제에서 두 번째 차원은 아래와 같이 도시 이름이 될 수 있습니다: contrib의 tablefunc 확장은 종종 Postgres를 가진 피벗에 대한 질문에서 인용되는 첫 번째 솔루션인 crosstab(텍스트 source_sql, 텍스트 카테고리_sql)의 함수를 제공합니다. 그러나 이러한 열은 명령의 4 번째 인수를 통해 복잡한 기준으로 정렬 할 수 있습니다. 예를 들어 다음 명령은 도시 열을 강우 순위별로 정렬하여 쿼리에 4번째 열로 추가하고 crosstabview로 전달합니다. 몇 가지 옵션을 살펴보면서 교사와 반의 예를 계속 살펴보겠습니다. 크로스탭 함수를 사용하여 크로스탭 쿼리에 총 열을 추가하는 것은 다소 까다롭습니다. 우리는 소스 sql이 정확히 3 개의 열 (행 헤더, 버킷, 버킷 값)을 가져야한다고 말했습니다. 글쎄, 그건 완전히 정확하지 않았다. 함수의 crosstab(source_sql, category_sql) 변형은 row_header, 불필요한 열, 버킷, 버킷값이 있는 원본을 허용합니다.

행 헤더와 혼동되지 않는 열을 얻지 마십시오. 동일하지 않으며 다중 행 열을 만드는 데 사용한 것처럼 사용하려고 하면 데이터가 생깁니다. 여기에 단순하기 위해 기억해야 할 빠른 규칙이 있습니다. 불필요한 열 값은 동일한 행 헤더를 가진 원본 행의 경우 정확히 동일해야 하며 버킷 열 바로 앞에 삽입됩니다. 우리는 전체 열을 생성하기 위해이 사실을 사용합니다. 6년 동안 13개 도시 또는 78개 행에 대한 데이터가 있는 간단한 데이터 집합을 살펴보겠습니다. (이 예에 대한 SQL 덤프는 여기에서 사용할 수 있습니다: rainfall-example.sql; 원시 데이터는 프랑스의 일부 도시에 대한 월별 측정으로 구성되며 https://www.infoclimat.fr/climatologie/)에서 오는 것입니다.

Shares

Posted on 2nd August 2019 in Uncategorised

Share the Story

About the Author

Back to Top
Shares