pivot

행과 열 기준 필드를 지정하여 피벗 테이블 형태로 집계합니다.

명령어 속성

항목설명
명령어 유형가공 쿼리
필요 권한없음
라이선스 사용량해당 없음
병렬 실행지원
분산 실행분석 노드에서 실행 (reducer)

문법

pivot [parallel=BOOL] AGG_FUNC [as ALIAS], ... {rows|by} FIELD, ... {cols|for} FIELD, ...

옵션

parallel=BOOL
병렬 집계 사용 여부. t 또는 f로 지정합니다.

대상

AGG_FUNC [as ALIAS], ...
집계 함수와 선택적 별칭. 쉼표(,)로 구분하여 여러 집계 함수를 지정할 수 있습니다.
{rows|by} FIELD, ...
행 기준 필드. rows 또는 by 키워드를 사용합니다. 쉼표(,)로 구분하여 여러 필드를 지정할 수 있습니다.
{cols|for} FIELD, ...
열 기준 필드. cols 또는 for 키워드를 사용합니다. 쉼표(,)로 구분하여 여러 필드를 지정할 수 있습니다.

입력 필드

필드타입필수 여부설명
(행 기준 필드)모든 타입조건부rows 또는 by 절에 지정한 그룹화 기준 필드
(열 기준 필드)모든 타입조건부cols 또는 for 절에 지정한 열 기준 필드
(집계 대상 필드)모든 타입조건부집계 함수가 참조하는 필드

출력 필드

필드타입설명
(행 기준 필드)모든 타입행 그룹화 기준 필드 값
(열 기준 값) 또는 (집계 함수 별칭)모든 타입열 기준 필드의 고유 값 또는 집계 함수 결과

오류 코드

파싱 오류
오류 코드메시지설명
21800필드를 입력하십시오.집계 함수가 지정되지 않은 경우
런타임 오류

해당 사항 없음

설명

pivot 명령어는 입력 레코드를 행 기준 필드와 열 기준 필드의 조합별로 그룹화하고, 각 그룹에 집계 함수를 적용합니다. 열 기준 필드의 고유 값이 출력 필드 이름이 되어 피벗 테이블 형태의 결과를 생성합니다.

열 기준 필드의 고유 값이 최대 1,000개를 초과하면 오류가 발생합니다.

rowsby, colsfor는 각각 동일한 키워드입니다. 순서는 자유롭게 지정할 수 있습니다.

분산 환경에서는 분석 노드에서 최종 집계를 수행합니다.

pivot 명령어는 입력 레코드를 수신하는 동안 메모리 내 버퍼에 집계 결과를 누적합니다. 버퍼 크기 기본값은 열 기준 필드가 있으면 50,000건, 없으면 100,000건이며, 이 임계값을 초과하면 중간 집계 결과를 디스크에 플러시합니다. 이 값은 시스템 프로퍼티 araqne.logdb.aggregate_flush_size에서 열있음:열없음 형식으로 변경할 수 있습니다. 집계가 완료된 결과는 2,000건 단위로 묶어서 출력합니다.

사용 예

이 사용 예에서 조회하는 WEB_APACHE_SAMPLE 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.

  1. 행과 열 기준 피벗

    table WEB_APACHE_SAMPLE
    | pivot count rows method cols status
    

    HTTP 메서드(행)와 상태 코드(열)의 조합별 요청 건수를 피벗 테이블로 출력합니다.

  2. byfor 키워드 사용

    table WEB_APACHE_SAMPLE
    | pivot sum(bytes) as total_bytes by method for status
    

    byfor 키워드를 사용하여 HTTP 메서드별, 상태 코드별 전송 바이트 합계를 피벗 테이블로 출력합니다.

  3. 여러 집계 함수 사용

    table WEB_APACHE_SAMPLE
    | pivot count, avg(bytes) as avg_bytes rows method cols status
    

    HTTP 메서드(행)와 상태 코드(열)의 조합별 요청 건수와 평균 바이트를 피벗 테이블로 출력합니다.

호환성

pivot 명령어는 소나 4.0 이전 버전부터 제공되었습니다.