반응형 Study/SQL3 [AWS Athena] 중첩 배열을 행으로 만드는 법, Flattening nested arrays into row (UNNEST 사용법) AWS Athena에서 데이터를 보다보면 column의 type이 구매 array 이런식으로 되어 있는 경우가 있는데 이것은 한개의 컬럼에 여러 데이터가 중첩되어 있는 구조입니다. 간단한 생각해보면 아래 표와 같이 구매 컬럼 하나에 상품명과 단계가 같이 묶어서 저장되어 있는 형태라고 생각하면 이해가 편할 것 같습니다. user_id 구매 상품명 단계 A 가방 구매완료 상의 장바구니 B 상의 구매완료 하의 장바구니 이런 구조에서 단계나 상품명 기준으로 user_id를 count를 하려면 중첩된 데이터를 행단위로 펼쳐줘야 하는데 이렇게 하는 방법은 크게 2가지 정도가 있는 것 같습니다. -- CROSS JOIN을 사용하는 방법 SELECT product.상품명, product.상태, COUNT(*) FROM.. 2023. 1. 11. [Athena(Presto)] String to Timestamp, Date 변경방법(UTC to KST 변경방법 포함) DB에 저장되어 있는 timestamp 포맷이나 date 포맷의 string 값을 실제 timestamp나 date로 변경하는 방법 -- STRING to TIMESTAMP from_iso8601_timestamp(timestamp) -- STRING to DATE from_iso8601_date(date) timestamp의 경우 UTC를 KST로 변경도 같이 할 수 있음 -- UTC to KST from_iso8601_timestamp(timestamp) AT TIME ZONE 'Asia/Seoul' 2022. 12. 26. [BigQuery] UTC를 KST로 변경하는 법(UTC to KST) Cloud 상에 쌓여있는 데이터를 보면 대부분 UTC 기준으로 적재되어 있는데, 실제 Business는 KST 기준으로 돌아가기 때문에 정확한 데이터 확인을 위해서 UTC를 KST 로 변경해줘야 하는 경우가 매우 잦게 있다. 특정 시간만 보려면 UTC와 KST가 9시간 차이나니까 UTC+9 이런식으로 처리하면 되는데, 날짜별로 group by를 한다던가 하면 15시 부터는 +9로 처리하면 날짜를 바꿔줘야해서 번거로운 상황이 생기게 되어서 이번 기회 UTC를 KST로 바꾸는 방법을 정리! -- DATE로 Return DATE(timestamp, 'Asia/Seoul') -- DATETIME도 동일하게 가능 DATETIME(timestamp, 'Asia/Seoul') 찾아보니 timestamp가 UTC인지 .. 2022. 4. 23. 이전 1 다음 반응형