일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 약수구하기
- 셀프조인
- SQL고득점KIT
- 데이터리안
- 윈도우함수
- leetcode문풀
- sql문풀
- join
- 데벨챌
- levle1
- 서브쿼리
- 프로그래머스문풀
- leetcode
- 위키독스
- 파이썬
- SQL
- 오블완
- SQL테스트
- 데이터리안실전반
- 그로스해킹
- 활성사용자수
- sql50
- 데이터리안넥스트레벨챌린지
- 프로그래머스
- 코테준비
- 티스토리챌린지
- with절
- 파이썬문풀
- 문풀
- mysql
- Today
- Total
목록SQL/SQL문풀 (47)
꿈은 데이터분석가, 취미는 계획

리텐션은 분석하는 제품이나 서비스의 방문 주기, 구매 주기 등에 따라 적합한 방법으로 측정한다고 한다.각 리텐션 측정 방법들을 보다보니 한 번에 정리해두면 좋을 것 같아서 포스팅으로 남기기로 했다! 이번 포스팅에서는 각 리텐션을 추출하는 방법에 대해 이론적으로 이해하고,쿼리로 실행하는 글을 작성하려고 한다. 먼저, 리텐션은 제목에서 작성한 것 처럼 크게 4개 정도로 알고 있어 클래식, 롤링, 범위리텐션을 정리했다.+) 리텐션을 이해할 때 데이터리안의 포스팅을 많이 참고했다!(아래 링크는 롤링 리텐션이지만, 해당 글 상단에서 리텐션 시리즈 링크가 있어 모두 확인 가능하다) 리텐션(2) Rolling Retention사용자가 이탈하지 않고 남아있는가?'에 초점을 맞춥니다. | 리텐션 시리즈 모아보기 1...

양승화님의 그로스 해킹 책을 통해 리텐션의 개념을 익히고, 개인 프로젝트를 통해 리텐션을 구하는 쿼리도 작성해봤다. 쿼리를 짜면서도 리텐션을 구하는 쿼리가 어렵다고 생각하고, 서비스별로 리텐션을 측정하는 방법이나 기준이 다양하기에 이번 코테를 준비하면서 한 번 정리해보려고 한다.**구글링을 통해 찾은 리텐션 쿼리를 리뷰하는 방향으로 작성했다! +) 이해가 어려운 부분은 gpt를 통해 세부 설명을 추가하여 학습 +) 사용한 쿼리의 페이지 링크를 앞부분에 출처를 추가 1. 클래식 리텐션출처: 데이터 리안 실습 후기 블로그👇*아래 문제는 데이터리안 분석 캠프 실전반 실습 문제입니다. 데이터리안 - SQL 데이터 분석캠프 실전반- 2주차: 클래식 리텐션 실습클래식 리텐션 SQL 실습velog.ioSTEP 0..

출처[Leetcode] : https://leetcode.com/problems/department-top-three-salaries/description/문제: 부서별 급여 top3의 직원이름과 급여를 조회(동일 급여로 순위 중복이 발생하는 것을 포함)DENSE_RANK + PARTITION BYWITH 절 (top3_salary)DENSE_RANK() 윈도우 함수를 사용하여 departmentID별로 급여(salary)가 높은 순서대로 순위 지정같은 급여를 받는 경우 동일한 순위를 부여INNER JOINEmployee 테이블(s)과 Department 테이블(d)을 departmentID = id 조건으로 조인하여 부서명을 가져오기최종 SELECT부서명(Department), 직원명(Employee)..

출처[해커랭] : Occupations문제: occupation컬럼과 name컬럼을 사용하여, 직업별 컬럼을 생성하고 이름 순으로 조회 ROW_NUMBER + PARTITION BY 활용STEP 1occupation별로 name의 알파벳순으로 순위부여*ROW_NUMBER를 사용해야 동일 직업-동일 이름이더라도 다른 순위를 부여한다SELECT occupation, name, ROW_NUMBER() OVER(PARTITION BY occupation ORDER BY name) AS numFROM occupationsSTEP 2 1) 직업별 순위를 부여한 쿼리를 서브쿼리로 FROM 절에서 사용 *서브쿼리에 별칭을 반드시 지정해야 함.2) CASE문을 사용하여 직업(occupat..

출처: [프로그래머스] : 서울에 위치한 식당 목록 출력하기문제: 매장정보와 리뷰정보 테이블을 활용하여 매장정보와 리뷰 평균 출력 1. INNER JOIN 활용하기1) 매장 정보 테이블과 리뷰 테이블을 INNER JOIN(리뷰가 있는 것만 조회 되도록)2) GROUP BY로 매장별 정보와 리뷰 평점을 집계3) where절에서 LIKE로 서울인 것을 필터링 *주의* 샘플 데이터에 '서울특별시'로 되어있어서 그대로 사용하였는데 '서울시'로 입력된 것도 있어 정답처리x 샘플만 믿지 말고 실제로 조회해보는 단계가 필요! SELECT ri.REST_ID, ri.REST_NAME, ri.FOOD_TYPE, ri.FAVORITES AS FAVORITE, ..

출처: [leetcode - SQL50] : 1341. Movie Rating 문제: 동일한 횟수나 평점이 나온 경우 이름을 기준으로 오름차순하여 1개 만 선택ORDER BY로 정렬하여 찾기1) 동점이 나올 경우 유저 이름 순으로 1순위를 선택하므로, 유저이름이 있는 users테이블과 movierating테이블을 join2) name으로 group by하여 이름이 나온 횟수 = 영화를 본 횟수를 count하여 내림차순, 이름순으로 오름차순3) LIMIT1으로 가장 횟수가 큰 유저의 이름을 선택4) 동일한 방식으로 평점이 가장 높은 영화 이름을 선택5) 이름에 대한 별칭을 results 동일하게 주고 UNION ALL로 통합하여 결과 출력 (SELECT name AS resultsFROM MovieR..