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

출처: [프로그래머스] : 가격대별 상품 개수 구하기문제: 가격을 만원 대로 구분하여, 가격대별 상품의 수 구하기1. FLOOR 사용하기1) 상품 가격을 10,000으로 나눈 뒤, FLOOR 함수를 사용해 소수점을 버리고 다시 10,000을 곱하여 만원 단위의 가격 구간을 생성2) 생성된 가격 구간을 기준으로 GROUP BY를 수행하고, 각 구간별 상품 개수를 COUNT 함수로 집계SELECT FLOOR((PRICE / 10000)) * 10000 AS PRICE_GROUP, COUNT(*) AS PRODUCTSFROM PRODUCTGROUP BY FLOOR((PRICE / 10000)) * 10000ORDER BY PRICE_GROUP;

리텐션은 분석하는 제품이나 서비스의 방문 주기, 구매 주기 등에 따라 적합한 방법으로 측정한다고 한다.각 리텐션 측정 방법들을 보다보니 한 번에 정리해두면 좋을 것 같아서 포스팅으로 남기기로 했다! 이번 포스팅에서는 각 리텐션을 추출하는 방법에 대해 이론적으로 이해하고,쿼리로 실행하는 글을 작성하려고 한다. 먼저, 리텐션은 제목에서 작성한 것 처럼 크게 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, ..