오늘 할일
태블로 14일차
리텐션 대시보드
- 코호트 분석 : 특정 기간 동안 공통된 특성이나 경험을 갖는 사용자 집단. 행동 패턴의 추적
- 유저 : 경영진의 기존 고객 잔존율, 신규 고객 획득 트렌드 관찰
- 목표 : 신규 고객 유지 및 신규 획득 고객의 관리
- 요구사항 : 최근 몇 주간 기존 고객 유지율 보여줄 것, 신규 획득 고객 트렌드 보여줄 것, 총 누적 고객 트렌드 보여줄 것
- 뷰&데이터&계산식
1) Retention Analysis : User ID + Event Time
2) New Acquisition Users : 유저별 최초 플레이 시점 + COUNTD
3) Cumulative Total Users : 유저별 최초 플레이 시점 + COUNTD + 테이블 계산 누계
- 디자인 : 파란색-녹색 팔레트. 리텐션 40% 이상 차지해 집중
- 샘플 데이터 : https://data.world/markbradbourne/rwfd-real-world-fake-data
SQL
예제 1. Employees Earning More Than Their Managers
- 테이블 Employee(id, name, salary, managerId)
- 관리자보다 수입이 많은 직원을 찾는 SQL을 작성하시오.
(쿼리문)
select name as Employee
from Employee e
where salary > (select salary from Employee m where e.managerId = m.id)
예제 2. Duplicate Emails
- 테이블 Person(id, email)
- 중복된 이메일을 확인하는 코드를 만들 것
(쿼리문)
SELECT email as Email
FROM Person
GROUP BY email
HAVING count(email) > 1
예제 3. Rising Temperature
- 테이블 Weather (id, recordDate, temperature)
- 이전 날짜와 비교하여 온도가 더 높은 모든 날짜의 ID를 찾는 SQL 쿼리를 작성하시오.
(쿼리문)
SELECT w1.id
FROM Weather AS w1 , Weather AS w2
WHERE w1.Temperature > w2.Temperature AND DATEDIFF(w1.recordDate , w2.recordDate) = 1 # 온도가 더 높고, 날짜 하루 차이 추출
예제 4. Consecutive Numbers
- 테이블 : Logs(id, num)
- 연속적으로 세 번 이상 나타나는 모든 숫자를 찾는 SQL 쿼리를 작성하시오.
- 이해가 안되서 사례들 확인하면서 했다. 이너 조인은 좀 적응이 안 되서, where절 활용했다.
(쿼리문)
select a.num as ConsecutiveNums
from Logs a, Logs b, Logs c
where a.Id=b.Id+1 and a.num=b.num and b.Id=c.Id+1 and b.num=c.num
예제 5. Delete Duplicate Emails
- 테이블 Person(id, email)
- 최소 id 기준 중복된 이메일을 확인하는 코드를 만들 것. SELECT 없이 DELETE 문만 사용해야 함
- 차이는 모르겠는데 p1.id > p2.id로 입력했을 때 정답이었다. 최소 id 기준에 해당해서 그런 걸로 보임
(수정 전 쿼리문)
Delete p1
From Person p1, Person p2
Where p1.email=p2.email and p1.id != p2.id
(수정 후 쿼리문)
Delete p1
From Person p1, Person p2
Where p1.email=p2.email and p1.id > p2.id
내일 할 일
태블로 14일차 : 리텐션 대시보드
리트코드 SQL 예제 풀기
GC케어 화상면접