목록전체 글 (318)
susinlee 님의 블로그

문제: 10가지 토핑 재료들 중에서 3가지를 선택하여 해당 조합의 총 가격 구하기 조합을 구하는 방법은 여러 가지 방법이 있다. 그 중 4가지 방법을 알아보자. 1. INNER JOIN 으로 조합 만들기 SELECT *FROM pizza_toppings AS p1JOIN pizza_toppings AS p2 ON p1.topping_name 테이블을 세 번 JOIN 하여 3개의 조합을 만들어준다. 이때 5 Combination 3 의 조합 개수가 생긴다. (=120)-- 최종 코드SELECT CONCAT(p1.topping_name, ',', p2.topping_name, ',', p3.topping_name) AS pizza_combination, (p1.ingredient_cost + p2..

유저별로 행동 로그를 담은 테이블을 가지고 각 funnel_step에서의 유저 수를 SQL 쿼리로 구현해볼 것이다. 그 전에 각 퍼널 유형별로 집계 방식의 차이를 짚고 넘어가자. 개방형 퍼널 vs 폐쇄형 퍼널 Step AStep BStep CUser 1XXXUser 2 XXUser 3X XUser 4 XUser 1 completed all 3 stepsUser 2 entered the funnel at step B, and also completed step CUser 3 entered the funnel at step A, skipped step B, completed step CUser 4 enters the funnel at step C개방형 퍼널 (open funnel)사용자가 어떤 단계에서든지..

customer_orders 테이블컬럼명타입설명ORDER_IDINT주문 ID (PK)CUSTOMER_IDINT고객 IDORDER_DATEDATE주문 날짜ORDER_AMOUNTDECIMAL(10, 2)주문 금액 고객의 첫 주문 월을 기준으로 코호트 그룹을 만들고,각 코호트 그룹에서 시간이 지남에 따라 활성 사용자 수를 계산하는 쿼리를 짜보자.각 코호트 그룹에 대해 1개월 후부터 12개월 후까지의 활성 사용자 수를 추적한다. 1. 고객별로 가장 처음 주문한 날짜를 구한다.SELECT customer_id, DATE_FORMAT(MIN(order_date), '%Y-%m-01') AS first_order_monthFROM customer_ordersGROUP BY customer_id 2. 위의 ..

날씨가 좋아 나가서 밥먹구 카페에 들려서 공부했다라이브 세션 강의 복습하던 중 폐쇄형 퍼널을 구현하는 쿼리가 있었는데 이상한 점을 발견하게 됐다. 덕분에 엑셀에 테이블 도배해가면서 어떻게 해야 구현할 수 있는지를 하루종일 고민했다.. 튜터님한테도 메시지를 보내봤는데 답장이 없으셔서 고생을 좀 했다. 직접 테이블 만들어서 쿼리를 구현해봤고, 결과는 제대로 나왔다. 해당 케이스에서만 제대로 나온 걸수도 있어서 검증이 필요하긴 하다. 그런데 몇몇 블로그를 찾아보니 튜터님이 설명하신 폐쇄형 퍼널이 사실 폐쇄형 퍼널이 아니고 연속 순서 퍼널이란다.https://docs-kr.hackle.io/docs/funnel-analysis 퍼널 분석퍼널 분석 소개 핵클의 사용자 퍼널 분석을 통해 사용자가 서비스에 들어와..
1. 코호트 분석(Cohort Analysis) 이란?코호트 분석은 특정 시점에서 공통된 특성을 가진 사용자 그룹(코호트)을 추적하여 행동 패턴을 분석하는 기법이다 핵심 개념시간 기반(Time-based): 사용자를 가입 월, 첫 구매 월 등 특정 기간을 기준으로 그룹화한다.이벤트 기반(Event-based): 특정 행동을 기준으로 사용자 그룹을 구분할 수도 있다.장기적인 사용자 행동 변화 분석에 유리하다.코호트 분석의 필요성특정 기간 동안의 신규 고객 유지율(Retention Rate) 분석 가능특정 시점에서 가입한 고객이 얼마나 제품을 지속적으로 사용하는지 평가신규 기능 출시 후 사용자 반응 분석마케팅 캠페인의 효과 측정코호트 분석 사례유료 전환율 분석1월, 2월, 3월 가입한 고객을 각각 분석하여 ..

재귀 쿼리의 개념재귀 쿼리는 트리 구조 데이터 또는 그래프 데이터(네트워크, 경로 탐색)를 다룰 때 사용되는 SQL 기법기본적으로 자기 자신을 참조하는 방식으로 데이터를 반복적으로 조회할 수 있음SQL에서 재귀 쿼리는 CTE의 확장 기능이며, WITH RECURSIVE를 사용함 재귀 쿼리의 구조재귀 쿼리는 세 가지 요소로 구성됨WITH RECURSIVE recursvie_cte AS ( -- 1. Anchor 쿼리 (기본 시작 데이터) SELECT 초기값 FROM 테이블 WHERE 조건 UNION ALL -- 2. Recursive 쿼리 (자기 자신을 참조하여 반복 수행) SELECT 다음 단계의 값 FROM 테이블 JOIN recursive_ct..
1. 날짜/시간 추출기능PostgreSQLMySQL설명연도 추출EXTRACT(YEAR FROM date_col)YEAR(date_col)연도를 추출월 추출EXTRACT(MONTH FROM date_col)MONTH(date_col)월을 추출일 추출EXTRACT(DAY FROM date_col)DAY(date_col)일을 추출시간 추출EXTRACT(HOUR FROM date_col)HOUR(date_col)시간을 추출분 추출EXTRACT(MINUTE FROM date_col)MINUTE(date_col)분을 추출초 추출EXTRACT(SECOND FROM date_col)SECOND(date_col)초를 추출 2. 날짜/시간 차이 계산기능PostgreSQLMySQL설명날짜 차이(일 단위)AGE(date_co..
[문제]https://datalemur.com/questions/sql-bloomberg-stock-min-max-1 Bloomberg SQL Interview Question | DataLemurBloomberg SQL Interview Question: Write a query to retrieve the highest and lowest open prices for each FAANG stock by month over the years.datalemur.com [풀이]DISTINCT ON (컬럼) - PostgreSQL 전용괄호안 컬럼 기준으로 중복을 제거ORDER BY 절을 통해 첫 번째로 등장하는 행을 설정할 수 있다예를 들어, ORDER BY open_price DESC를 적용할 경우, 컬럼..