- Chapter 1: Revenue, cost and profit
- Chapter 2: User-centric metrics
- Chapter 3: Unit economics and distributions
- Chapter 4: Generating an executive report
Chapter1
- DATE_TRUNC(date_part, date)
- ex) DATE_TRUNC('week', '2018-06-12')::DATE -> '2018-06-11'
Chapter2
- MAU (Monthly Active User) : 한 달 동안 유저의 활동 수
- 월별 고유 유저 수를 구하면 된다.
- DAU (Daily Active User): 하루동안 유저의 활동 수
- 일별 고유 유저 수를 구하면 된다.
- 증감률 : 기준 대비 증감 비율
- (비교하고자 하는 값 - 기준 값) / 기준 값
- 유지율 : 지난 달부터 이번 달까지 유지 된 사용자의 비율
- (지난 달과 이번 달 모두 활동한 사용자의 수) / (이전 달에 활동한 고유 사용자의 수)
Chapter3
- ROUND(variable, num) : num에 음수 값을 사용한다면, 10^num 자리에 맞게 반올림된다.
- PERCENTILE_CONT(분위수 값) WITHIN GROUP (ORDER BY variable ASC) : 연속형 변수의 백분위수 값 찾아준다.
- ex) PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY orders ASC)
Chapter4
- TO_CHAR(DATE, TEXT) : 날짜형 타입을 문자열 타입으로 바꾸어서 출력한다.
- ex) TO_CHAR('2018-06-01', 'Dy') : 'Fri'
- CREATE EXTENSION : Python의 import와 같다.
- ex) CREATE EXTENSION IF NOT EXISTS tablefunc;
- CROSSTAB : Pivot Table을 만들어주는 함수
CREATE EXTENSION IF NOT EXISTS tablefunc;
SELECT * FROM CROSSTAB($$
SELECT
meal_id,
DATE_TRUNC('month', order_date) :: DATE AS delivr_month,
COUNT(DISTINCT order_id) :: INT AS orders
FROM orders
GROUP BY meal_id, delivr_month
ORDER BY meal_id, delivr_month$$)
AS ct (meal_id INT,
"2018-06-01" INT,
"2018-07-01" INT)
ORDER BY meal_id ASC;
'Algorithm > SQL' 카테고리의 다른 글
Leetcode SQL 50 - 1321. Restaurant Growth (0) | 2024.03.23 |
---|---|
[SQL] 데이터 캠프 수강 (11) - Reporting in SQL (0) | 2021.05.23 |
[SQL] 데이터 캠프 수강 (9) - Applying SQL to Real-World Problems (0) | 2021.05.02 |
[SQL] 데이터캠프 수강 (8) - Introduction to data driven decision making (0) | 2021.04.25 |
[SQL] 데이터 캠프 수강 (7) - Exploratory Data Analysis in SQL (0) | 2021.04.02 |