본문 바로가기

DATA

(11)
[SQL 풀이] DataLemur - User's Third Transaction 모든 유저의 세 번째 거래에 대한 정보를 출력하는 쿼리를 만드는 문제 RANK함수를 이용해서 user_id 내 순위를 구하는 쿼리를 만든다. SELECT user_id, spend, transaction_dateFROM (SELECT user_id, spend, transaction_date, ROW_NUMBER() OVER ( PARTITION BY user_id ORDER BY transaction_date) AS row_num FROM transactions) AS trans_numWHERE row_num = 3; 1. RANK: 동일한 숫자가 있으면 제외하고 출력(1, 1, 3) 2. DENSE_RANK: 동일한 숫자가 ..
SQL을 활용한 RFM 분석 📌 RFM분석 정의고객들의 '구매 패턴'을 파악하여 사용자 별로 얼마나 최근에, 자주, 많은 금액을 지출했는지에 따라 사용자들의 분포를 확인하거나 사용자 그룹을 나누어 분류하는 분석 기법Recency: 얼마나 최근에 구매했는지이탈 기준을 세울 때 사용하는 지표Frequency: 얼마나 자주 구매했는지Monetary: 얼마나 많은 금액을 구매했는지전체 매출액에서 고객 집단이 차지하는 비중을 보아야 함. 전체 매출의 대부분을 차지하는 특정 고객층, 중간 고객층, 가장 낮은 금액을 구매하는 층  이탈 기준 정하기유저의 접속 세션 데이터를 이용하여 이탈(churn) 기준을 잘 정하는 방법boxnwhis.kr  📌 RFM 분석 기법의 프로세스  📌 SQL에서 RFM을 구하는 쿼리 예시- Case when 구..
SQL: Leet code 문제풀이(570, 1934, 620) 570. Managers with at least 5 direct reports https://leetcode.com/problems/managers-with-at-least-5-direct-reports/description/ #구할 값: name # 조건절에서 managerId가 5번 이상 언급되는 값을 찾아서 집계해준다.select namefrom Employeewhere id in (select managerId from Employee group by managerId having count(*) >= 5)  1934. Confirmation Ratehttps://leetcode.com/problems/confirmation-rate/description/ 각 사용자의 확..
SQL풀이: Leetcode 1661. Average Time of Process per Machine https://leetcode.com/problems/average-time-of-process-per-machine/ 문제machine_id와 기계 종류별로 처리 평균 시간을 구하면 되는 문제로 평균 시간은 소수 3째자리에서 반올림해주어야 한다. 방법1 select machine_id, round(sum(case when activity_type = 'start' then - timestamp else timestamp end) / count(distinct process_id), 3) as processing_timefrom Activitygroup by machine_id; 방법2테이블을 두 개로 분리해서 푸는 방법SELECT a.machine_id, ROUND(AVG(b...
GA4: UTM 파라미터 의미와 사용 방법 1. UTM의 의미 Urchin Tracking Module의 약자. 마케팅 캠페인의 성과를 추적하기 위해 URL에 추가하는 추적 파라미터 2. UTM 파라미터 구성utm_source 필수 : 유입 채널 (e.g. youtube)utm_medium 필수 : 유입된 매체 (e.g. social, cpc, email)utm_campaign 필수 : 유입된 캠페인 (e.g. sql_package)utm_term 옵션 : 검색 유입의 경우 검색하고 들어온 키워드 / 유료 광고의 경우 타겟utm_content 옵션 : 콘텐츠파라미터 명 = 파라미터 값을 한 세트로 입력. 사용하고 싶은 파라미터가 여러 개인 경우 '&'을 써서 연결한다. UTM은 팀 내에서 알아볼 수 있는 값으로 입력해주면된다. GA4에서는 UTM..
SQL: LAG 함수 활용하여 현재 데이터와 이전 데이터를 비교 LAG 함수 정의 SELECT LAG([대상 컬럼], [이전 offset], [기본값]) OVER (PARTITION BY [..] ORDER BY [..]) LAG함수를 이용하면, 이전 행 값과 다음 행의 값을 비교할 수 있다.   예시 문제: 이전 일과 비교했을 때, 온도가 더 높았던 날짜를 집계하기with tmp as (select id ,RecordDate,Temperature,LAG (Temperature,1) OVER (ORDER BY RecordDate) AS prev_Temperature,LAG (RecordDate,1) OVER (ORDER BY RecordDate) AS prev_RecordDatefrom Weather)select id from tmp where Temperature>..
데이터 리터러시 : 성과 측정을 위한 유의한 지표 정리 1. 지표의 정의특정 목표나 성과를 측정하기 위한 구체적이고 측정 가능한 기준으로, 목표의 달성도를 평가하고 전략적 결정에 필요한 핵심 정보를 제공한다.   2. 주요 지표 정리 (2) 활성 유저(Active User)      특정 기간 내에 웹 사이트나 애플리케이션에 참여한 고유 사용자 수를 계산하는 것. -> 성장, 이탈 및 제품 유지를 측정하는 높은 수준의 제품 지표이다.  활성 사용자(Active User)의 정의 (1)활성 사용자의 의미 | Active User는 활성 사용자를 말한다. MAU, WAU, DAU에 들어가는 그 ‘AU’가 Active User이다. 그래서 우리가 GA4를 살펴볼 때는 총 사용자 수로 보는 것이 아니라 Active User 즉, 활성 사brunch.co.kr  활성..
GA4 : GTM에 태그 연결하기 이번 포스팅에서는 데이터 트래킹을 위해 GTM에 태그를 연결하는 방법을 설명하려고 한다.  ✅태그 연결 방법(1) 가장 먼저 태그 관리자의 작업공간에 들어가서 태그로 이동한다.   (2) 상단에 태그 이름을 지정해주고, 태그 구성 클릭 → Google 애널리틱스를 선택  (3) Google 태그를 선택한 후 측정 ID를 입력해준다. (만약, 측정 ID를 까먹었다면 구글애널리틱스로 들어가서 (관리 → 데이터 스트림)에서 확인 가능)  (4) 트리거는 태그가 언제 실행될 지를 결정하는 것Google 태그는 다른 태그들보다 가장 먼저 실행되어야 하고 모든 웹사이트에서 실행되어야 하기 때문에Initialization - All Pages를 클릭한 후 저장한다.   (5) Google 태그의 변경 사항을 반영하기..