일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- SQL
- 코테문제풀이
- bigquery
- Programmers
- 데이터분석부트캠프
- mysql
- 패스트캠퍼스데이터분석부트캠프
- 국비지원교육
- 데이터분석가
- 패스트캠퍼스기자단
- 아나콘다
- 데이터분석취업
- qgis
- 프로그래머스
- sql강의
- 국비지원취업
- Python
- 데이터분석
- 학습일지
- 국비지원
- 부트캠프
- 패스트캠퍼스부트캠프
- 코딩연습
- 내일배움카드
- WSL
- shp
- 패스트캠퍼스
- K디지털기초역량훈련
- 코딩테스트
- 코딩테스트문제풀이
- Today
- Total
데이터 리터러시를 위한 발자취
[패스트캠퍼스] SQL 강의 학습후기 4주차 본문
벌써 SQL 강의 학습후기도 4주차에 들어섰습니다.
내일배움카드 발급 후 듣고 있는 강의이지만 SQL 쪽은 python과 다르게 또 다른 재미가 있는 것 같습니다.
개인적으론 3주차에서 실습을 처음 풀 때, DATE_FORMAT 부문에 대한 개념을 확실하게 익힐 수 있어서 좋았습니다.
개념 강의 파트에 비하면 실습 난이도가 꽤 올라가는 편이라 문제가 어떤 의미인지 뜯어본다고 제법 시간이 걸리네요.
하지만 강의 수강 전에는 어렵게만 느껴지던 SQL이 조금이지만 친숙해져가는 느낌이어서 더 열심히 해보고 싶어요.
# with문 : 서브쿼리를 사용해서 임시테이블처럼 사용할 수 있는 구문
* 데이터베이스에 저장되는 테이블은 아님
# 기본 쿼리문
WITH [임시테이블명] AS
(
SELECT [컬럼명]
FROM [테이블명]; -- 서브쿼리, WHERE, GROUP BY, ORDER BY 등 적용하여 사용 가능
)
-- 임시테이블 설정 후, SELECT~FROM절을 통해 쿼리문 작성
SELECT [컬럼명],[컬럼명]
FROM [임시테이블명];
# window 함수(행 순서 함수) *관련 레퍼런스 최하단 참고
: GROUP BY처럼 데이터 그룹화하여 집계하지만, GROUP BY와 달리 기존 데이터에 집계된 값을 추가하여 출력함
# 기본 쿼리문
[WINDOW 함수명][컬럼명] OVER (PARTITION BY [컬럼명] ORDER BY [컬럼명] [ASC/DESC])
- LAG() : 이전 행의 값을 가져옴
* 가져올 값이 없을 시 NULL값 생성
# 기본 쿼리문
LAG([컬럼명]) OVER (PARTITION BY [컬럼명] ORDER BY [컬럼명]) -- 필요에 따라 별명 사용
- LEAD() : 특정 컬럼 행의 다음 행 값을 가져옴(default - 1 : 다음 행을 가져옴)
* 더 이상 가져올 값이 없을 시 NULL값 생성
# 기본 쿼리문
LEAD([컬럼명]) OVER (PARTITION BY [컬럼명] ORDER BY [컬럼명]) -- 필요 시 별명 사용
# (실습) 결제 전환율(Conversion Rate) 계산
> 특정 행위를 한 방문자의 비율
EX) 웹서비스 전환율의 경우, 방문 후 판매 및 유료 서비스 등의 구독 단계까지 진행한 방문자의 비율을 의미함
* 인앱구매 또는 인웹서비스 형태의 앱/앱을 출시했을 때, 최초가입일 이후 유료서비스를 이용하는 유저들의 전환 액선(Conversion Action)을 계산함
산출식 > 유저가입일 / 최초 구매일 = 결제전환율
* 위 산출식은 강의에서 명시된 문제에 따라 적용된 것이기에 참고만 할 것
# 사용 쿼리문
-- TIME_TO_SEC : 시간을 초로 변환해주는 함수
SELECT TIME_TO_SEC ([컬럼명]); -- 1시간의 경우, 3600(초) 출력
-- TIMEDIFF : 시간 1 - 시간 2 차이 반환해주는 함수 (1주차 '5. 날짜형 데이터 정복하기' 참고)
SELECT TIMEDIFF([시간1],[시간2])
# (실습2) 재방문율(Retention Rate) 계산
> 서비스 출시 이후 서비스 재사용율 또는 재방문율은 어떻게 되는지 나타내는 지표
EX) 웹서비스 출시 이후, 1,000명의 유저가 접속하였는데 일정 기간 이후에도 약 800명의 유저가 사용하고 있다면 재방문율은 80%로 나타남
* 서비스 만족도를 가장 잘 대변하는 지표로, 서비스 만족도가 높다면 꾸준한 사용으로 재사용율은 높을 것임
'산출식 >특정 기간 마지막 지점에 방문한 유저 수 / 시작 시점에 방문한 총 유저 수 = 재방문율
* 위 산출식은 강의에서 명시된 문제에 따라 적용된 것이기에 참고만 할 것
실습 풀이 시 사용된 쿼리문 위주로 내용 정리해보았습니다.
서브쿼리 쓰는게 이제야 익숙해진다 싶었더니 임시테이블 생성해주는 WITH문까지..
SQL의 세계는 무궁무진하다는 걸 매주 느끼는 요즘입니다.
그래도 SQL 최적화를 위해선 필수로 숙지하고 있어야 할 개념들이겠죠.
완강할 때쯤엔 풀이를 보지 않고도 척척 풀어낼 수 있으면 좋겠네요.
아직까진 SQL을 작성해도 40~50% 가까이 틀리고 있습니다.. ㅎㅎ
* WINDOW 함수 관련 References
대표적인 윈도우 함수 6가지 알아보기
윈도우 함수는 고급 SQL 기능인데요. 이는 분석가뿐만 아니라 보고서를 만드는 사람, 데이터를 가공하는 그 누구에게도 상당히 유용한 기능입니다. 이 글은 많이 알려져 있는 윈도우 함수의 문법
kimsyoung.tistory.com
[MySQL] 윈도우함수(Window Function)
윈도우함수는 Group By와 비슷하게 데이터를 그룹화하여 집계해준다. 하지만 Group By는 집계된 결과만 보여주는 반면, 윈도우함수는 기존 데이터에 집계된 값을 추가하여 나타낸다. 위와 같은 데이
mizykk.tistory.com
'데이터 분석 > SQL' 카테고리의 다른 글
[프로그래머스] 코딩테스트 연습 - 헤비 유저가 소유한 장소 (0) | 2023.09.21 |
---|---|
[패스트캠퍼스] SQL 강의 학습후기 5주차 (0) | 2023.06.24 |
[패스트캠퍼스] SQL 강의 학습후기 3주차 (2) | 2023.06.10 |
[패스트캠퍼스] SQL 강의 학습후기 2주차 (0) | 2023.06.03 |
[패스트캠퍼스] SQL 강의 학습후기 1주차 (0) | 2023.05.24 |