맨날 postgresql이나 MySQL만 쓰다가 빅쿼리를 처음 써보니 생소한 데이터 형식에 쿼리를 치자마자 오류를 만날 수 있었다.
난 단지 이걸 불러오고 싶어서 단순히 저걸 셀렉트해왔지.. 하지만 GA의 데이터 구조는 약간 달라서 쿼리가 실행되지 않았다 ㅜㅜ
SELECT event_params.value.string_value FROM `dataset.tablename.events_20230118` LIMIT 1000
GA는 다음과 같이 계층형 구조로 이루어져있어서,위처럼 쿼리를 날리면 위같은 에러가 뜬다 . record 타입를 가진 필드가 repeated 모드(array) 까지 있어서 hits의 자식인 hits.page 필드는 select 쿼리가 안된다. struct 타입 + array 타입
(인용 : https://cookiethecat2020.blogspot.com/2020/06/bigquery-unnest-3.html)
UNNEST를 통해 SELECT 를 해주면 원하는 부분만 뽑아올 수 있다.
UNNEST와 크로스조인 (,로 대신 가능)을 통해 해결가능하다. 아래처럼 쿼리를 작성하면 해당 데이터 조회가 가능하다!!!!!!
SELECT event_name,user_id,h.value.string_value
FROM `테이블명`,UNNEST(event_params) as h
LIMIT 1000
'데이터베이스 > SQL' 카테고리의 다른 글
[MSSQL] 해당 날짜 월의 1일에 해당하는 날짜 추출하기 / 월 추출 (0) | 2024.06.12 |
---|---|
[MSSQL] 해당 날짜 주차의 월요일에 해당하는 날짜 추출하기 (0) | 2024.06.12 |
[MSSQL] SQL Server에서 SAFE_DIVIDE 사용하기 (0) | 2024.06.10 |
[Bigquery] Merge into 사용 가이드 (0) | 2023.09.01 |
[Bigquery] Bigquery SQL로 ML 모델링 A to Z (0) | 2023.08.23 |
댓글