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

BigQuery에서 행을 열로 피벗하는 방법은 무엇인가요?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-03 22:16:40319검색

How to Pivot Rows into Columns in BigQuery?

BigQuery의 피벗 변환: 행을 열로 전치

문제:

목표는 다음과 같습니다. BigQuery에서 데이터를 행에서 열로 변환합니다. 여기서 키는 열 이름이 되고 값은 해당 열 값이 됩니다.

예:

이전:

Key Value
channel_title Mahendra Guru
youtube_id ugEGMG4-MdA
examId 72975611-4a5e-11e5
channel_id UCiDKcjKocimAO1tV
postId 1189e340-b08f

이후:

channel_title youtube_id channel_id examId postId
Mahendra Guru ugEGMG4-MdA UCiDKcjKocimAO1tV 72975611-4a5e-11e5 1189e340-b08f

해결책:

현재 BigQuery 기본 피벗 기능이 부족합니다. 그러나 다음 접근 방식은 동일한 결과를 얻을 수 있습니다.

1단계: 쿼리 구조 생성

SELECT 'SELECT id, ' + 
   GROUP_CONCAT_UNQUOTED(
      'MAX(IF(key = "' + key + '", value, NULL)) as [' + key + ']'
   ) 
   + ' FROM yourTable GROUP BY id ORDER BY id'
FROM (
  SELECT key 
  FROM yourTable
  GROUP BY key
  ORDER BY key
)

2단계: 쿼리 실행 및 변환

  • Step에서 생성된 쿼리를 실행합니다. 1.
  • 결과를 복사하고 다음과 같이 형식을 지정합니다(형식이 필요하지 않음):
SELECT 
  id, 
  MAX(IF(key = "channel_id", value, NULL)) AS [channel_id],
  MAX(IF(key = "channel_title", value, NULL)) AS [channel_title],
  MAX(IF(key = "examId", value, NULL)) AS [examId],
  MAX(IF(key = "postId", value, NULL)) AS [postId],
  MAX(IF(key = "youtube_id", value, NULL)) AS [youtube_id] 
FROM yourTable 
GROUP BY id 
ORDER BY id
  • 변환된 실행 쿼리.

고려 사항:

  • 2단계에서 쿼리를 수동으로 구성할 수 있는 경우 1단계를 건너뛸 수 있습니다.
  • 테이블당 열 수는 10,000개로 제한되므로 더 큰 데이터세트에 맞게 확장하는 것을 고려하세요.

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

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