-
[11주차 - Day3] GROUP BY, AGGREGATE, CTAS교육/프로그래머스 인공지능 데브코스 2021. 8. 7. 20:40728x90
3. GROUP BY와 CTAS
1.GROUP BY와 AGGREGATE 함수
테이블의 레코드를 그룹핑하여 그룹별로 다양한 정보를 계산
aggregate함수 : COUNT, SUM, AVG, MIN, MAX, LISTAGG, ...
예제 : 월별 세션 수를 계산하는 SQL
SELECT LEFT(ts, 7) AS mon, COUNT(1) AS session_count FROM raw_data.session_timestamp GROUP BY 1 -- GROUP BY mon, GROUP BY LEFT(ts, 7) ORDER BY 1;
예제 : 가장 많이 사용된 채널은 무엇인가?
SELECT channel, COUNT(1) AS session_count, COUNT(DISTINCT userId) AS user_count FROM raw_data.user_session_channel GROUP BY 1 -- GROUP BY channel ORDER BY 2 DESC; --ORDER BY session_count DESC
예제 : 가장 많은 세션을 만들어낸 사용자 ID는 무엇인가?
SELECT userId, COUNT(1) AS count FROM raw_data.user_session_channel GROUP BY 1 --GROUP BY userId ORDER BY 2 DESC --ORDER BY count DESC LIMIT 1;
예제 : 월별 유니크한 사용자 수
=MAU(Monthly Active User)
시간 정보, 사용자 정보가 필요함
SELECT TO_CHAR(A.ts, 'YYYY-MM') AS month, COUNT(DISTINCT B.userId) AS mau FROM raw_data.session_timestamp A JOIN raw_data.user_session_channel B ON A.sessionId = B.sessionId GROUP BY 1 ORDER BY 1 DESC;
'교육 > 프로그래머스 인공지능 데브코스' 카테고리의 다른 글
[11주차 - Day5] 고급 문법 소개 & 실습 (0) 2021.08.09 [11주차 - Day4] JOIN, 리뷰 (0) 2021.08.08 [11주차 - Day2] DDL, DML, SELECT (0) 2021.08.07 [11주차 - Day1] Redshift 소개 (0) 2021.08.07 [10주차 - Day4] RNN(Recurrent Neural Network) (0) 2021.08.01