>데이터 베이스 >MySQL 튜토리얼 >PIVOT 함수를 사용하여 BigQuery에서 데이터를 동적으로 피벗하려면 어떻게 해야 하나요?

PIVOT 함수를 사용하여 BigQuery에서 데이터를 동적으로 피벗하려면 어떻게 해야 하나요?

Patricia Arquette
Patricia Arquette원래의
2024-12-26 18:48:09381검색

How Can I Dynamically Pivot Data in BigQuery Using the PIVOT Function?

BigQuery의 PIVOT 함수: 동적 분기 값 처리

BigQuery에 최근 도입된 PIVOT 함수는 데이터를 표 형식으로 변환하는 편리한 방법을 제공합니다. 지정된 열의 행을 피벗합니다. 그러나 실제 시나리오에서는 피벗 열 값(예: 분기)을 미리 알 수 없는 상황에 자주 직면합니다.

이 문제를 해결하기 위해 다음 쿼리를 고려해 보겠습니다.

SELECT * FROM
  (SELECT * FROM Produce)
  PIVOT(SUM(sales) FOR quarter in (select distinct quarter from Produce))

이 쿼리는 분기 열에서 Produce 테이블을 동적으로 피벗하려고 시도하지만 원하는 결과를 생성하지 못합니다. 누락된 요소는 PIVOT 절을 동적으로 작성해야 한다는 것입니다.

해결책은 SQL의 즉시 실행 기능을 사용하여 동적으로 생성된 쿼리를 실행하는 데 있습니다. 향상된 쿼리는 다음과 같습니다.

execute immediate (             
select '''select * from (select * from `project.dataset.Produce`)
  pivot(sum(sales) for quarter in ("''' ||  string_agg(quarter, '", "')  || '''"))
'''
from (select distinct quarter from `project.dataset.Produce` order by quarter) 
);

이 쿼리는 다음 단계를 수행합니다.

  1. 수정된 PIVOT 쿼리가 포함된 문자열을 생성합니다. 분기 값은 string_agg를 사용하여 동적으로 생성됩니다.
  2. 수정된 쿼리를 실행하여 원하는 피벗 테이블을 검색합니다.
  3. 열이 일관된 순서로 표시되도록 고유한 분기 값에 순서를 지정합니다.

SQL의 유연성을 활용하여 정적 피벗 열의 한계를 극복하고 동적 값을 처리할 수 있습니다. 원활하게.

위 내용은 PIVOT 함수를 사용하여 BigQuery에서 데이터를 동적으로 피벗하려면 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.