>데이터 베이스 >MySQL 튜토리얼 >BigQuery에서 데이터 피벗을 해제하는 방법은 무엇인가요?

BigQuery에서 데이터 피벗을 해제하는 방법은 무엇인가요?

Susan Sarandon
Susan Sarandon원래의
2024-12-23 03:19:09938검색

How to Unpivot Data in BigQuery?

BigQuery에서 데이터를 피벗 구조에서 비피봇 구조로 변환하는 방법

BigQuery에서는 피벗 테이블을 피벗되지 않은 형식으로 변환합니다. 여기에는 데이터를 보다 표 형식으로 표현하는 작업이 포함됩니다. 이를 달성하려면 다음 단계를 고려하세요.

UNPIVOT 연산자 사용(권장)

이제 BigQuery는 이 변환을 단순화하는 전용 UNPIVOT 연산자를 제공합니다. 이 연산자를 사용하면 회전할 피벗 열(예: Q1, Q2, Q3, Q4)과 결과 열(예: 매출, 분기)을 지정할 수 있습니다.

SQL 구문:

SELECT product, UNPIVOT(value FOR quarter IN (Q1, Q2, Q3, Q4)) AS sales_quarter
FROM pivoted_table

중첩 사용 쿼리

UNPIVOT 연산자가 도입되기 전에는 BigQuery 사용자가 중첩 쿼리를 사용하여 피벗 해제를 달성할 수 있었습니다.

SQL 구문:

SELECT product,
  (SELECT value FROM UNNEST(SAFE_CAST(STRUCT(NULL AS name, Q1 AS "value") AS STRUCT<name STRING, value STRING>))) AS Q1,
  (SELECT value FROM UNNEST(SAFE_CAST(STRUCT(NULL AS name, Q2 AS "value") AS STRUCT<name STRING, value STRING>))) AS Q2,
  (SELECT value FROM UNNEST(SAFE_CAST(STRUCT(NULL AS name, Q3 AS "value") AS STRUCT<name STRING, value STRING>))) AS Q3,
  (SELECT value FROM UNNEST(SAFE_CAST(STRUCT(NULL AS name, Q4 AS "value") AS STRUCT<name STRING, value STRING>))) AS Q4
FROM pivoted_table

예시 데이터 변환

다음 예에서는 피벗 테이블을 변환합니다.

product | Q1 | Q2 | Q3 | Q4
-------------------------------
Kale    | 51 | 23 | 45 | 3
Apple   | 77 | 0  | 25 | 2

피벗 테이블로:

product | sales | quarter
-------------------------------
Kale    | 51    | Q1
Kale    | 23    | Q2
Kale    | 45    | Q3
Kale    | 3     | Q4
Apple   | 77    | Q1
Apple   | 0     | Q2
Apple   | 25    | Q3
Apple   | 2     | Q4

위 내용은 BigQuery에서 데이터 피벗을 해제하는 방법은 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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