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
)
);
질문의 샘플 데이터에 적용하려면 출력은