0. DAU(Daily Active Users, 일별 활성 사용자)는 앱 또는 웹을 사용한 사용자 수를 일별 집계한 값이다.
게임 앱이라고 가정한다면, 일별 게임 플레이한 유저 수가 DAU라 할 수 있다. 유저 수는 중복을 제거한다. DAU에 대한 자세한 설명은 위키피디아에서 확인할 수 있다.
1. 먼저 매일 게임을 플레이한 유저를 기록하는 PLAYS라는 가상의 DB가 있다고 하자.
user_id와 플레이한 date가 기록되어 있는 간단한 샘플 DB를 아래와 같이 만든다.
PLAYS 테이블이 잘 만들어졌는지 확인한다.
아래와 같이 (user_id, | created_at)으로 이루어진 PLAYS 테이블이 생성된 것을 확인할 수 있다.
2. DAU는 "일별로 유저 수 집계", "중복 유저 제거" 2가지 조건을 충족시켜야 한다.
즉 date()를 기준으로 count()를 하되 distinct를 사용하여 중복 유저를 제거한다.
user_id의 중복을 제거하고, unique한 값만 사용하기 위해 "distinct user_id"로 작성하였다.
"as"는 칼럼의 이름을 지정하는 것이다. rename의 역할을 한다.
"GROUP BY date"로 작성하여 date를 기준으로 count()를 실행하도록 한다.
위 조건을 대입한 쿼리는 아래와 같다.
쿼리를 실행하면 아래와 같이 DAU가 산출된다.
1월 3일에는 3명, 1월 4일에는 2명의 유저가 DAU로 집계됨을 확인할 수 있다.
파이썬(Python)을 이용해 DAU를 산출하고 싶다면, "파이썬(Python)을 이용한 DAU 구하기" 포스팅에서 코드를 확인할 수 있다.
끝.
게임 앱이라고 가정한다면, 일별 게임 플레이한 유저 수가 DAU라 할 수 있다. 유저 수는 중복을 제거한다. DAU에 대한 자세한 설명은 위키피디아에서 확인할 수 있다.
1. 먼저 매일 게임을 플레이한 유저를 기록하는 PLAYS라는 가상의 DB가 있다고 하자.
user_id와 플레이한 date가 기록되어 있는 간단한 샘플 DB를 아래와 같이 만든다.
1 2 3 4 5 6 7 | CREATE TABLE PLAYS(user_id integer, created_at date); INSERT INTO PLAYS VALUES(1, '2019-01-03'); INSERT INTO PLAYS VALUES(2, '2019-01-03'); INSERT INTO PLAYS VALUES(3, '2019-01-03'); INSERT INTO PLAYS VALUES(1, '2019-01-04'); INSERT INTO PLAYS VALUES(2, '2019-01-04'); |
PLAYS 테이블이 잘 만들어졌는지 확인한다.
1 | SELECT * FROM PLAYS; |
아래와 같이 (user_id, | created_at)으로 이루어진 PLAYS 테이블이 생성된 것을 확인할 수 있다.
2. DAU는 "일별로 유저 수 집계", "중복 유저 제거" 2가지 조건을 충족시켜야 한다.
즉 date()를 기준으로 count()를 하되 distinct를 사용하여 중복 유저를 제거한다.
user_id의 중복을 제거하고, unique한 값만 사용하기 위해 "distinct user_id"로 작성하였다.
"as"는 칼럼의 이름을 지정하는 것이다. rename의 역할을 한다.
"GROUP BY date"로 작성하여 date를 기준으로 count()를 실행하도록 한다.
위 조건을 대입한 쿼리는 아래와 같다.
1 2 3 4 | SELECT DATE(created_at) as date, count(distinct user_id) as dau FROM PLAYS GROUP BY date ; |
쿼리를 실행하면 아래와 같이 DAU가 산출된다.
1월 3일에는 3명, 1월 4일에는 2명의 유저가 DAU로 집계됨을 확인할 수 있다.
파이썬(Python)을 이용해 DAU를 산출하고 싶다면, "파이썬(Python)을 이용한 DAU 구하기" 포스팅에서 코드를 확인할 수 있다.
끝.
댓글
댓글 쓰기