다중 열 피벗에 tablefunc 사용
질문:
tablefunc를 사용하여 행 이름뿐 아니라 여러 변수를 피벗하는 방법은 무엇입니까?
배경:
수십억 개의 행이 포함된 데이터 세트는 수많은 엔터티에 대해 수행된 여러 측정값을 효율적으로 비교하기 위해 넓은 형식으로 전환되어야 합니다. 이러한 측정값은 매우 다양하므로 데이터를 넓은 형식으로 자주 전환해야 합니다.
질문:
표준 tablefunc 접근 방식은 속성 열(일명 "추가" 열)이 모든 행 이름에 대해 일관적이라고 가정합니다. 행 이름 내의 속성 열에 여러 값이 존재하는 경우 첫 번째 값만 보고되어 피벗 출력에 불완전한 데이터가 발생합니다.
해결책:
이 제한을 극복하려면 쿼리 열을 다시 정렬하고 행 이름 열 앞에 속성 열을 배치해야 합니다. 이렇게 하면 각 행 이름 파티션의 첫 번째 행에서 속성 값이 채워져 해당 행 이름에 대한 다양한 속성 값이 모두 캡처됩니다.
코드:
<code class="language-sql">SELECT * FROM crosstab( 'SELECT entity, timeof, status, ct FROM t4 ORDER BY entity' , 'VALUES (1), (0)' ) AS ct ( "Attribute" character , "Section" timestamp , "status_1" int , "status_0" int );</code>
요약:
처음 두 열(행 이름 열 앞의 속성 열)의 순서를 반대로 함으로써 tablefunc는 여러 변수를 효과적으로 피벗하여 완전한 피벗 출력을 제공할 수 있습니다. 이 접근 방식은 데이터 세트에 행 이름당 속성 값 수가 다른 경우에 효과적입니다.
위 내용은 Tablefunc은 데이터 손실을 방지하기 위해 다중 변수 피벗을 어떻게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!