작성
·
58
0
# 1) array_exercises 테이블에서 각 영화(title)별로 장르(genres)를 UNNEST해서 보여주세요
SELECT title, ge
FROM advanced.array_exercises AS ae
CROSS JOIN UNNEST(genres) AS ge
# 2) array_exercises 테이블에서 각 영화(title)별로 배우(actor)와 배역(character)을 보여주세요. 배우와 배역은 별도의 컬럼으로 나와야 합니다
SELECT title, ac.actor, ac.character
FROM advanced.array_exercises AS ae
CROSS JOIN UNNEST(actors) AS ac
# 3) array_exercises 테이블에서 각 영화(title)별로 배우(actor), 배역(character), 장르 (genre)를 출력하세요. 한 Row에 배우, 배역, 장르가 모두 표시되어야 합니다
SELECT title, ac.actor AS actor, ac.character AS character, genre
FROM advanced.array_exercises AS ae
CROSS JOIN UNNEST(actors) AS ac
CROSS JOIN UNNEST(genres) AS genre
# 4) 앱 로그 데이터(app_logs)의 배열을 풀어주세요
SELECT event_date, event_timestamp, event_name, ep.key AS key, ep.value.string_value AS string_value, ep.value.int_value AS int_value, user_id
FROM advanced.app_logs
CROSS JOIN UNNEST(event_params) AS ep
최근에 입사해서 야근 때문에 시간이 부족해 Array와 Struct까지만 제출합니다.
입문편과 활용편을 병행하고 있는데, 2주차는 2주차 과제와 병행하며 1주차 과제에 추가하겠습니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
show_3_님이 작성하신 SQL 쿼리는 Google BigQuery 또는 비슷한 SQL 기반 환경에서 배열이나 구조체와 관련한 데이터 처리를 연습하는 문제로 보입니다.
이 문제에서 사용된 UNNEST
는 배열이나 구조체 형태의 데이터를 풀어내어 테이블 형식으로 확장하는 데 사용됩니다. 몇 가지 유용한 팁을 드리면 좋겠습니다:
배열 UNNEST:
배열을 풀어낼 때는 CROSS JOIN UNNEST(array_column)
구문을 사용하여 각 요소를 개별 행으로 표시할 수 있습니다. 이는 여러 종류의 데이터를 매핑하여 보여줄 때 유용합니다.
여러 배열을 함께 사용하기:
각각의 배열을 별도로 UNNEST
할 때, 다른 배열이 동일한 크기와 연순서를 따르도록 해야 하며 그렇지 않으면 기대하지 않은 결과가 나올 수 있습니다. 동시에 교차 조인 횟수가 많아질수록 결과의 조합이 많아지므로 성능을 고려해야 합니다.
배열의 구성 요소 컬럼 나누기:
JSON이나 배열 안에 구조체가 존재하는 경우, UNNEST
한 데이터를 하나의 컬럼으로 집계할 때 키-값 쌍을 제공하는 것은 일반적인 접근 방법입니다.
추가적으로 출제된 과제를 효율적으로 처리하시기 위해, 시간 관리를 염두에 두시고 우선순위를 두는 것이 좋습니다. 만약 추가적인 질문이 있거나 특정 코드에 대한 이해가 필요하실 경우 언제든지 말씀해주세요.
Spring Data JDBC - Reference Documentation v3.1.5 문서도 참조해보세요. 힘내시길 바랍니다!