Data Science/SQL86 [SQL/오답] 다차원 그룹화와 중복 제거를 활용한 데모그래픽 지표 산출 (프로그래머스 Lv4) [SQL/Level 4] 년, 월, 성별 별 상품 구매 회원 수 구하기https://school.programmers.co.kr/learn/courses/30/lessons/1315321. Problem온라인 쇼핑몰의 유저 정보와 판매 데이터를 결합하여, 년, 월, 성별이라는 세 가지 차원을 기준으로 구매 회원 수를 집계해야 한다. 이때 성별 미기입(NULL) 회원은 제외해야 하며, 동일한 유저가 같은 달에 여러 번 구매했더라도 단 한 명의 유저로 카운트해야 하는 '실구매자 수(Unique Users)' 산출이 핵심 과제이다.2. Solution테이블 조인을 통해 성별 정보를 가져온 뒤, 날짜 함수와 중복 제거 집계 함수를 조합하여 해결한다.COUNT(DISTINCT USER_ID): 비즈니스 지표에서 .. 2026. 2. 15. [SQL/오답] 코호트 분석: 고정 분모와 동적 분자를 활용한 구매 비율 산출 (프로그래머스 Lv5) [SQL/Level 5] 상품을 구매한 회원 비율 구하기https://school.programmers.co.kr/learn/courses/30/lessons/2760351. Problem2021년에 가입한 전체 회원들 중, 각 월별로 상품을 구매한 회원의 비율을 구해야 한다. 비율은 (당월 구매한 2021년 가입 회원 수 / 2021년 전체 가입 회원 수)로 계산하며, 소수점 두 번째 자리에서 반올림한다. 특정 시점에 유입된 집단의 유지율(Retention)을 추적하는 전형적인 비즈니스 분석 문제이다.2. Solution전체 모수(분모)를 서브쿼리로 고정하고, 월별 구매자(분자)를 집계하여 결합하는 전략을 사용한다.분모의 고정: (SELECT COUNT(*) FROM USER_INFO WHERE YEA.. 2026. 2. 15. [SQL] AARRR이란?, 쿼리테스트 출제 유형, 관련 함수 1. AARRR이란 무엇인가?미국의 스타트업 엑셀러레이터 데이브 맥클루어(Dave McClure)가 고안한 분석 모델로, 고객의 여정을 5단계로 나눕니다.단계의미핵심 질문SQL 관련 지표Acquisition (획득)유저가 어떻게 오는가?신규 유입 경로와 수는?신규 가입자 수, 유입 채널별 카운트Activation (활성화)유저가 첫 경험을 하는가?유저가 주요 기능을 쓰는가?첫 구매, 첫 콘텐츠 시청, 튜토리얼 완료Retention (유지)유저가 계속 돌아오는가?다시 방문하거나 재구매하는가?리텐션(유지율), 재방문율Revenue (매출)유저가 돈을 지불하는가?실제 수익이 발생하는가?LTV(생애가치), 결제 전환율, ARPPUReferral (추천)유저가 주변에 알리는가?공유나 초대 코드를 쓰는가?공유 횟수.. 2026. 2. 15. [SQL] 코호트 분석이란?, 쿼리테스트 출제 유형, 관련 함수 1. 코호트 분석(Cohort Analysis)이란?**코호트(Cohort)**란 '특정 기간 동안 공통된 특성이나 경험을 공유하는 사용자 집단'을 의미합니다.쉽게 말하면: "사람들을 **들어온 시기(가입월 등)**별로 묶어서, 시간이 흐름에 따라 이들이 어떻게 행동하는지(구매, 유지, 이탈) 관찰하는 것"입니다.목적: 서비스가 개선되고 있는지, 특정 시기에 들어온 유저들이 유독 충성도가 높은지 등을 파악하기 위함입니다.2. SQL 쿼리 테스트 출제 유형기업에서는 주로 다음과 같은 3가지 유형으로 출제합니다.유형핵심 내용난이도유지율(Retention)가입 후 1개월 뒤, 2개월 뒤에도 남아있는 유저 비중 구하기상재구매율첫 구매 이후 특정 기간 내에 다시 구매한 유저 비율중상누적 매출(LTV)특정 시기에 .. 2026. 2. 15. [SQL/오답] 서브쿼리를 활용한 판매 데이터 사전 집계와 다중 조인 (프로그래머스 Lv4) 1. Problem2022년 1월 도서 판매 데이터를 기준으로 저자별, 카테고리별 총 매출액(판매량 × 판매가)을 산출해야 한다. 서로 다른 성격의 세 테이블(BOOK, AUTHOR, BOOK_SALES)을 결합해야 하며, 저자라는 큰 단위 안에 카테고리라는 세부 단위를 중첩하여 그룹화하는 정밀한 집계 역량이 요구된다.2. Solution가장 큰 부하가 예상되는 BOOK_SALES 테이블을 먼저 처리한 뒤, 나머지 마스터 테이블들과 조인하는 '선(先) 필터링 후(後) 조인' 전략을 사용한다.서브쿼리 활용 (SUB): 수만 건에 달할 수 있는 판매 로그를 조인하기 전에 미리 월별 합계로 축소시켜 조인 연산의 비용을 획기적으로 줄였다.다차원 그룹화: AUTHOR_ID와 CATEGORY를 함께 묶어 저자별 포.. 2026. 2. 15. [SQL] 비트연산&, 기간중복, 서브쿼리 Alias 규칙, EXISTS, HAVING 1️⃣ 비트 연산자 (&): 다대다 포함 관계의 치트키스킬 코드나 권한 관리처럼 데이터가 2의 제곱수로 저장된 경우 사용합니다.핵심 로직: (SKILL_CODE & CODE) > 0 이면 "스킬 보유"로 판단.팁: WHERE 절이나 CASE WHEN에서 0이 아닌 숫자는 SQL 엔진이 TRUE로 간주합니다.실무 활용: 여러 Front End 스킬을 SUM(CODE)로 합쳐 하나의 비트 마스크를 만들면, 단 한 번의 연산으로 포함 여부를 체크할 수 있어 성능이 압도적입니다.2️⃣ 기간 중복(Overlap) 체크 공식"특정 기간에 대여 가능한 차"를 찾을 때, 반대로 **"겹치는 예약"**을 찾아 제외하는 방식입니다.마법의 공식: 두 기간이 겹칠 조건은 시작일 = 타겟_시작일입니다.프로세스:서브쿼리로 11월.. 2026. 2. 15. 이전 1 ··· 3 4 5 6 7 8 9 ··· 15 다음