[패스트캠퍼스] 국비로 데이터 분석 강의(SQL) 공부하는 학습일지 W4
문과 기획자의 SQL 공부하기-3문과 기획자의 SQL 공부하기-3
지난 12강 동안 이론에 집중된 강의를 들었다. 하, 이번 강의부터는 실습 위주의 강의. 그러니까 현업에서 '이렇게 데이터 보여주세요'라는 질문에 대응할 수 있는 실습을 시작했다. 우선 15강까지 들었는데, 예상되는 질문은 아래와 같다. 우선 우리는 가상의 데이터를 바탕으로 학습한다. 상상 속의 이커머스인듯한 이 데이터는 visit, consumer, purchase로 구성되어 있다. (데이터 끌어오는 것도 한 세월.. 하지만 이제 궁금한 건 select *로 볼 수 있다고!)
여기서 더 다양한 sql 함수를 확인할 수 있다. 우선 이번 수업에 사용된 함수와 질문들을 기록해본다.
수업은 매 시간마다 큰 카테고리를 중심으로 진행된다. 우선 Day 13에선 서비스의 전체적인 이해를 알아볼 수 있는 질문들로 구성되어 있다.
1. 2020년 7월의 총 revenue를 구해주세요.
2. 2020년 7월의 MAU(Monthly Active Users)를 구해주세요.
3. 2020년 7월에 우리 acitve 유저의 구매율 (paying rate)은 어떻게 되나요?
4. 2020년 7월에 구매 유저의 월평균 구매액(ARPPU)은 어떻게 되나요?
5. 7월에 가장 많이 구매한 고객 top 3와 top 10-15 고객을 뽑아주세요.(고과금 유저 찾기)
[함수]
- where : where를 사용해 기간을 설정
- count : count를 사용해 조건에 해당하는 데이터의 수를 확인
- offset : limit A offset B : B까지 제외하고 C부터 A 개 가져오기 (순위)
Day 14에선 날짜와 시간별로 분석하기 위한 질문들로 구성되어 있다. 평균 매출, 방문자수 모두 현업에서 궁금해할 숫자들이다.
1. 2020년 7월의 평균 DAU(Daily Active Users)를 구해주세요.
1-1. Active user 수가 증가하는 추세인지 확인해주세요.
2. 2020년 7월의 평균 WAU(Weekly Active Users)를 구해주세요.
2-1. 2020년 7월의 daily revenue는 증가하는 추세인가요?
2-2. 2020년 7월의 평균 daily revenue도 구해주세요.
3. 2020년 7월의 평균 weekly revenue를 구해주세요.
4. 2020년 7월의 요일별 revenue, 어느 요일이 가장 높고, 어느 요일이 가장 낮은 가요?
5. 2020년 7월의 시간대별 revenue, 어느 시간대가 가장 높고 어느 시간대가 가장 낮나요?
[함수]
- date format : 다양한 날짜 데이터를 확인할 수 있음
- select now() : 현재 시간을 초까지 알 수 있음
- select date_add / select date_sub를 통해 날짜를 더하거나 뺄 수 있음
- timediff를 통해 날짜 간의 간격을 알 수 있음
Day 15.... 슬슬 머리에서 쥐가 날 것 같았다. 재미있는데.. 재미있는데 어려워요! 하지만 극복해야지. 유저 세그먼트별 분석을 하기 위한 데이터 함수들이다. 아무래도 타겟팅을 해야 하는 이커머스(아마도)의 특성상 꼭 필요한 데이터일 것이다. 근데 이걸 알아내는 게 만만치 않다.
1. 전체 유저의 demographic을 알고 싶어요. 성, 연령별로 유저 숫자를 알려주세요.
1-1. 어느 세그먼트가 가장 숫자가 많나요. 참고로 기타 성별은 하나로, 연령은 5세 단위로 적당히 묶어주시고, 숫자가 높은 순서대로 보여주세요.
2. 1번 결과의 성, 연령을 성별(연령)로 통합해주세요
2-1. 각 성, 연령이 전체 고객에서 얼마나 차지하는지 분포(%)를 알려주세요. (높은 순 나열)
3. 2020년 7월의 성별에 따라 구매 건수와 총 revenue를 알려주세요. (기타 성별은 묶기)
4. 2020년 7월의 성별/연령대에 따라 구매 건수와 총 revenue를 구하기. (기타 성별은 묶기)
[함수]
- select distinct gender : 회원가입 시 입력한 성별의 종류를 알 수 있음
- select distinct age : 회원가입 시 입력한 나이를 알 수 있음 (중복은 제외)
- select gender, count(*) : 각 성별의 인원을 알 수 있음
- case~when 구문을 사용하면 select 문에 조건을 더 줄 수 있음
- concat 함수를 사용해 두 개의 컬럼을 합칠 수 있음
- 두 테이블을 join 할 경우에 별칭을 써주자
멘붕의 실습 현장을 남기며... 다시 강의를 들으러 가보자..
담주가 마지막이라니! 말도 안 돼 날 더 가르쳐줘요...
그나저나 수업을 들으며 어떤 데이터를 모아야 할지 배울 수 있어서 참 좋다.
지금 만들고 있는 서비스에도 넣자고 말해야지!
#패스트캠퍼스 #내일배움카드취업 #국비지원교육 #K디지털기초역량훈련 #SQL강의