# STRUCT
STRUCT
는 각각의 데이터 타입이 존재하며 데이터별로 이름이 있는(선택 사항) 데이터 저장소입니다. 배열과 자주 쓰이며, 모든 데이터베이스에 엔진에 존재하진 않습니다.
꺾쇠 괄호를 사용해 정의합니다. 보통 Firebase, Google Analytics 4 데이터를 사용할 때 접하는 자료형이며, 엄청 많이 사용되진 않습니다.
- 소괄호 사용
STRUCT<INT64, STRING>
: 필드 이름이 없는 경우STRUCT<id INT64, name STRING>
: 필드 이름이 있는 경우
SELECT
(1,2,3) AS struct_test1,
STRUCT<INT64, INT64, STRING>(1, 2, 'HI') AS struct_test2,
STRUCT<hi INT64, hello INT64, awesome STRING>(1, 2, 'HI') AS struct_test3
첫 struct_test1은 이름을 지정하지 않아서 struct_test1._field_1
로 나타나고, 이름을 지정한 struct_test3은 struct_test3.hello
로 나타납니다.
WITH locations AS (
SELECT
STRUCT("Seattle" AS city, "Washington" AS state) AS location
UNION ALL
SELECT
STRUCT("Phoenix" AS city, "Arizona" AS state) AS location
)
SELECT
l.location.*
FROM locations as l
그 외 더 자세한 내용은 BigQuery UNNEST, ARRAY, STRUCT 사용 방법 (opens new window) 글을 추천합니다