[SQL] 데이터 PIVOT 하기 (presto, athena)
위 그림에서 파란색의 화살표와 같이 속성(attributtes)과 값(values) 들이 쌓여있는 형태에서, 속성들을 열(컬럼)의 형태로 변형하는 것을 피봇(pivot) 한다고 얘기한다. 그리고 그 반대의 과정을 언피봇(unpivot) 한다고 얘기한다. 이 포스팅에서는 presto (또는 athena) 에서 SQL로 피봇하는 것을 성명하려고 한다. (1) 아래와 같은 형태의 테이블이 있다. 실행을 위해서 sql 로 데이터를 아래와 같이 만들었다. with list (user_id, subject, score) as ( values (1, '국어', 90) , (1, '영어', 85) , (1, '수학', 60) , (2, '국어', 100) , (2, '영어', 50) , (2, '수학', 75) , (..
2022. 6. 9.
[SQL] 날짜 차이 계산하기 (presto, athena)
Presto (또는 athena)에서 날짜 차이를 구하는 방법에 대해서 알아보자. 기본적으로 date_diff 라는 함수를 사용한다. date_diff( 'unit', '시작일자', '종료일자') 의 형식으로 사용하는데, 여기서 'unit'에 따라서 차이를 일단위로 계산할지 또는 월단위로 계산할지 등등을 정할 수 있다. unit 으로는 'YEAR', 'QUARTER', 'MONTH', 'WEEK', 'DAY', 'HOUR' , 'MINUTE', 'SECOND' 등을 사용할 수 있다. select date_diff('day', date('2022-01-01'), date('2022-02-01')) --> 결과 : 31 한가지 주의할 점은 '시작일자' 와 '종료일자'가 날짜 형식의 타입이어야 한다. date..
2022. 5. 23.