Big Query-배열을 열로 전치

Oct 14 2020

Big Query에는 아래와 같은 표가 있습니다.

입력 테이블 :

 Name | Interests
 -----+----------
 Bob  | ["a"]
 Sue  | ["a","b"]
 Joe  | ["b","c"]

위의 표를 BI / 시각화 친화적으로 만들기 위해 아래 형식으로 변환하려고합니다.

대상 / 필수 테이블 :

 +------------------+
 | Name | a | b | c |
 +------------------+
 | Bob  | 1 | 0 | 0 |
 | Sue  | 1 | 1 | 0 |
 | Joe  | 0 | 1 | 0 |
 +------------------+

참고 : Interests 열은 배열 데이터 유형입니다. Big Query에서 이러한 종류의 변환이 가능합니까? 그렇다면 참조 쿼리가 있습니까?

미리 감사드립니다!

답변

1 MikhailBerlyant Oct 14 2020 at 11:38

아래는 BigQuery 표준 SQL 용이며 BQ의 스크립팅 기능을 사용합니다.

#standardSQL
create temp table ttt as (
  select name, interest 
  from `project.dataset.table`, 
  unnest(interests) interest
);

EXECUTE IMMEDIATE (
  SELECT """
  SELECT name, """ || 
    STRING_AGG("""MAX(IF(interest = '""" || interest || """', 1, 0)) AS """ || interest, ', ') 
  || """
  FROM ttt 
  GROUP BY name
  """
  FROM (
    SELECT DISTINCT interest 
    FROM ttt
    ORDER BY interest
  )
);      

질문의 샘플 데이터에 적용하려면 출력은