본문 바로가기

athena7

[SQL] 기하평균 을 구해보자 이전 포스팅에서는 기하평균의 의미와 함께 엑셀(Excel)을 사용하여 데이터를 검증해보았다. https://walkingfox.tistory.com/173 곱의 평균 (기하평균) 위의 차트는 어느 신문기사에서 가져온 경제성장률에 대한 내용이다. 2009년부터 2020년까지 12년동안 경제 성장률이 변화무쌍하다. 그럼 위 12년동안 평균 경제 성장률은 어떻지? 라는 물음에 답 walkingfox.tistory.com 이번 포스트에서는 기하평균을 SQL 에서 구하는 방법을 살펴보도록 한다. 테이블에 아래와 같은 id, rate 이라는 두 컬럼으로 구성된 list 라는 테이블이 있다고 가정을 한다. 여기서 산술평균은 avg 라는 함수를 사용하여 쉽게 구할 수 있다. 기하평균의 경우 athena 또는 prest.. 2022. 7. 26.
[SQL] 데이터 UN-PIVOT 하기 (presto, athena) 지난 포스팅에서는 데이터를 PIVOT 하는 내용에 대해서 알아보았었다. https://walkingfox.tistory.com/166 [SQL] 데이터 PIVOT 하기 (presto, athena) 위 그림에서 파란색의 화살표와 같이 속성(attributtes)과 값(values) 들이 쌓여있는 형태에서, 속성들을 열(컬럼)의 형태로 변형하는 것을 피봇(pivot) 한다고 얘기한다. 그리고 그 반대의 과정을 언피 walkingfox.tistory.com 언피봇(un-pivot) 이란, 위 그림에서처럼 속성(attributes)들이 컬럼으로 되어있는 형태에서 속성들을 행(row)으로 쌓여있는 형태로 만드는 것이다. 이번 포스팅에서는 presto (또는 athena) 에서 un-pivot 하는것에 대해서 설.. 2022. 6. 9.
[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) 이전 포스팅에서는 mysql 에서 주단위 집계시에 주의해야 할 점에 대해서 이야기 했었다. https://walkingfox.tistory.com/159 [MySql] 주단위 집계 꼭!! 주의해야할 점 쿼리(Query) 작업 시에 주 (Week) 단위로 집계를 해야한다면, 꼭 주의해야할 점이 하나 있다. 그것은 특정 일자가 어느 주에 속하는지에 따라서 다른년도의 주로 잘 못 계산되는 경우가 무척 많기 때 walkingfox.tistory.com 이번 글에서는 같은 내용을 presto 나 athena 에서 어떻게 처리할 지 이야기 해보겠다. presto 에서도 mysql에서와 같이 case when 구문을 이용하면 비슷한 방식으로 처리할 수 있지만, 역시나 sql 문장이 장황하게 길어진다. 대신 prest.. 2022. 6. 3.
[SQL] null 체크 (presto, athena) 어떤 DB (데이터베이스)던지, 표준 SQL 문법을 지원하기 때문에 특정 컬럼의 값이 null 일때의 처리는 동일한 구문으로 할 수 있다. 예를 들어 아래와 같이 테이블이 있다고 가정을 하면, create table tbl01 ( col1 varchar, col2 varchar ) col1 의 값을 출력하는데, col1의 값이 null 인경우 'none' 이라는 문자열로 출력하기를 원한다고 하면 아래와 같이 case when 구문으로 처리하면 어떤 db 에서든지 작동한다. select case when col1 is null then 'none' else col1 end as new_col1, col2 from tbl01 하지만, sql 문장이 길어져서 간결하게 만들려고 할 때에는 presto (athe.. 2022. 6. 3.
[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.
DBeaver 로 AWS Athena 접속하기 1. DBeaver의 데이터베이스 접속 화면에서 Athena 를 검색하여 선택합니다. 2. 선택을 하면 아래 그램과 같이 - Region - S3 location - Access Key - Scret Key 를 입력해줘야 합니다. 3. 위 창의 입력정보를 얻기 위해서는 웹상에서 AWS의 콘솔에 로그인을 합니다. 창의 오른쪽 상단을 보면 Region ('서울'이라고 나와있는)을 선택하는 화면이 있는게 여기서 Region 코드를 얻을 수 있습니다. 버지니아 북부라면 us-east-1 이 리젼이 됩니다. 4. 위의 지역 옆에 내 계정이 나와 있는 부분을 클릭하면 아래와 같이 '내 보안 자격증명'이라는 메뉴가 보입니다. 클릭하여 들어갑니다. 5. 아래와 같은 화면이 나타나는데 '엑세스 키 만들기' 버튼을 클릭하.. 2020. 6. 9.