본문 바로가기

MYSQL/개념6

코호트란? (Cohort) 코호트(Cohort)는 공통된 특성이나 경험을 공유하는 사람들의 그룹을 말한다.일반적인 코호트의 의미같은 시기에 태어난 사람들 (예 : 1990년생 코호트)같은 시기에 입학한 학생들 (예 : 2020년 입학 코호트)같은 시기에 특정 경험을 한 사람들비즈니스/마테팅에서의 코호트같은 시기에 첫 구매(또는 서비스 가입)을 한 고객 그룹을 말한다. 예시:1월 코호트 : 1월에 첫 구매한 고객들2월 코호트 : 2월에 첫 구매한 고객들3월 코호트 : 3월에 첫 구매한 고객들왜 코호트로 나눌 까?시간에 따른 고객 행동 패턴을 분석하기 위해서예를 들어 :1월에 첫 구매한 고객들이 2월, 3월, 4월에 재구해하는 비율은?어느 달에 가입한 고객들의 재구매율이 가장 높은가?시간이 지날수록 고객들의 구매 패턴은 어떻게 변하.. 2025. 7. 2.
ROWS와 RANGE() ROWS는 물리적 행의 순서를 기준으로 윈도우를 정의 한다. RANGE는 정렬 기준 값이 같은 행들을 하나의 그룹으로 취금해서 계산한다. 쉽게 말하면 한 줄 씩 차례대로 계산하고 RANGE는 같은 값 끼리 묶어서 계산한다.예시다음과 같은 테이블이 있다고 생각해보자.-- 학생 성적 테이블student_name | exam_date | score김철수 | 2024-03-01 | 85이영희 | 2024-03-01 | 85 박민수 | 2024-03-02 | 90최지영 | 2024-03-03 | 78 ROWS 사용시SELECT student_name, exam_date, score, AVG(score) OVER ( ORDER BY exam.. 2025. 7. 1.
윈도우함수 잘 쓰기 각 파티션 내에 비교할 수 있는 여러 행이 있어야 한다. PARTITION BY 와 GROUP BY가 완전히 같으면 각 파티션에 1개 행만 남는다.모든 rank가 1이 되서 무의미 하다. 예를 들면 SELECT developer, platform, SUM(sales) as total_sales, RANK() OVER (PARTITION BY developer ORDER BY SUM(sales) DESC) as platform_rankFROM games GROUP BY developer, platform; -- platform 추가 그룹바이에 여러행이 있어야 순위 매기기가 수월하다.| developer | platform | total_sales | platform_rank ||.. 2025. 6. 27.
SQL에서 중간값 구하기 SQL에서 중간값을 구해 봅시다.참고문제https://solvesql.com/problems/finedust-seasonal-summary/ https://solvesql.com/problems/finedust-seasonal-summary/ solvesql.com여기 까지 왔다는 건 중앙값이 뭔지는 안다는 뜻이겠죠? 자세한 설명은 하지 않겠습니다.우선 기본 데이터를 준비 합니다.SELECT ROW_NUMBER() OVER(PARTITION BY season ORDER BY pm10) AS row_num, COUNT(*) OVER(PARTITION BY season) AS cnt개절별로 순서와 그 개수를 준비해 줍니다.아래는 중앙값 구하는 공식 입니다. 이 값은 데이터 수가 홀수이던 짝수이던 정확한 값을.. 2025. 6. 24.
INSTR() 개요 INSTR은 문자열에서 특정 문자 위치가 어디있는 지 찾아주는 함수다. 프로토타입INSTR(원본문자열, 찾을문자열) 특징INSTR은 위치를 셀 때 1부터 센다. 찾는 문자가 여러개 있어도 첫번째로 나오는 문자의 위치만 반환한다. 예시SELECT INSTR('hello world hello', ' '); -- 결과: 6 2025. 6. 21.
언피펏(unpivot) 언피벗은 데이터 분석에서 많이 쓰이는 방식이다. 개념을 알기전 피벗이 뭔지 살펴보자피벗(pivot)의 개념 : 데이터를 가로로 펼치기피벗은 세로로 긴 데이터를 가로로 넓게 펼치는 작업이다. 학생들 월별 성적 데이터가 있다고 쳐보자. 피벗 전 데이터학생명 | 월 | 점수김철수 | 1월 | 85김철수 | 2월 | 90김철수 | 3월 | 88이영희 | 1월 | 92이영희 | 2월 | 87이영희 | 3월 | 95 피벗 후 데이터 학생명 | 1월점수 | 2월점수 | 3월점수김철수 | 85 | 90 | 88이영희 | 92 | 87 | 95 이렇게 피벗은 분석하기 편하게 데이터를 재배열 하는 것이다. 언피벗은 피벗의 정반대 개념이다. 가로로 넓게 펼쳐진 데이터를 세로로 길게.. 2025. 6. 19.