기본 콘텐츠로 건너뛰기

SQL - DAU 산출

0. DAU(Daily Active Users, 일별 활성 사용자)는 앱 또는 웹을 사용한 사용자 수를 일별 집계한 값이다.
게임 앱이라고 가정한다면, 일별 게임 플레이한 유저 수가 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 구하기" 포스팅에서 코드를 확인할 수 있다.

끝.

댓글

이 블로그의 인기 게시물

웨딩 드레스 스케치 도안

웨딩 드레스샵 투어를 다니면서 샘플로 드레스를 입는 경우에는 드레스 사진을 찍지 못하게 하는 샵이 많다. ​ 그래서 투어를 돌고 나면 어떤 샵의 어떤 스타일이 신부에게 잘 어울렸는지 헷갈릴 수가 있다. ​ 하지만 투어를 다닐 때 드레스샵에서 입은 드레스의 특징과 느낌을 잘 기록하면 샵을 선택하는 데 도움이 될 수 있다. ​ 드레스 투어를 다닐 때 드레스를 기록할 스케치 도안은 아래 링크에서 확인/다운로드 할 수 있다. 웨딩 드레스 스케치 도안 확인/다운로드 하기 투어를 마친 후 드레스샵과 계약을 하고, 드디어 본식 드레스를 고를 때에는 사진을 찍을 수 있는 경우가 많다. ​ 이 땐 사진을 잘 찍어서 어떤 드레스를 입을지 잘 선택하도록 하자. ​ ​

파이썬(Python)을 이용한 피어슨 상관계수 구하기

피어슨 상관계수(Pearson correlation coefficient)는 두 변수 간의 상관관계를 확인하기 위한 가장 기본적인 방법이다. 피어슨 상관계수를 사용할 때 주의해야할 사항은 아래와 같다. - 상관관계가 인과관계를 의미하는 것은 아니다. 단순히 두 변수의 연관성을 확인하는 것이다. - 두 변수가 정규분포일 때 잘 작동한다.  - 이상치(outlier)에 민감하므로, 이상치는 제거하는 것이 좋다. - 두 변수가 완전히 동일하면 피어슨 상관계수는 1.0이다. 완전히 반대방향으로 동일하면 -1.0, 전혀 상관 없으면 0이다. 세부적인 해석은 아래와 같이 한다. - -1.0과 -0.7 사이이면, 강한 음적 선형관계 - -0.7과 -0.3 사이이면, 뚜렷한 음적 선형관계 - -0.3과 -0.1 사이이면, 약한 음적 선형관계 - -0.1과 +0.1 사이이면, 거의 무시될 수 있는 선형관계 - +0.1과 +0.3 사이이면, 약한 양적 선형관계 - +0.3과 +0.7 사이이면, 뚜렷한 양적 선형관계 - +0.7과 +1.0 사이이면, 강한 양적 선형관계 파이썬을 통해 피어슨 상관계수를 쉽게 구할 수 있다. 예시를 통해 알아보자. height, weight의 두 변수를 가지는 body라는 DataFrame을 만들었다. DataFrame을 만드는 과정은 아래의 포스트에서 확인할 수 있다.  "파이썬(Python) Pandas를 이용한 데이터프레임(DataFrame) 만들기" body 데이터프레임으로 피어슨 상관계수를 구하는 코드는 아래와 같다.  1 2 corr = body . corr(method = 'pearson' ) corr Jupyter Notebook으로 구하면 아래와 같은 결과를 얻는다. 표의 행과 열을 살펴보면 "height - height", "weight - weight"는 1이...

논문으로 검증된 은행잎추출물의 효능

은행잎추출물(Ginko) - 일반적으로 많이 섭취하는 성분이다. - 일일 섭취 권장량은 28mg이다. 1개 이상의 신뢰할 수 있는 연구로 밝혀진 효능 불안감 감소 : 은행잎 추출물 80mg 또는 160mg을 4주간 복용하면 불안 증상을 줄일 수 있다는 연구가 있다.  알츠하이머병과 같은 치매 증상 완화 : 은행잎추출물을 1년 동안 120~240mg을 복용하면 알츠하이머병과 같은 치매 증상을 조금 완화시킬 수 있다는 연구가 있다. 하지만 몇몇 연구는 이러한 효과를 부정하기 때문에 주의할 필요가 있다. 연구에 따르면 은행잎추출물이 치매 증상을 완화시키는 데 도움이 될 수는 있지만 치매를 예방하는 효과는 없는 것으로 보인다.  기억력 개선 : 은행잎추출물을 복용하면 다양한 뇌세포 손상물질로부터 뇌세포를 보호하고 기능을 활성화시켜 기억력을 개선하는 데 도움을 줄 수 있다.  당뇨성 망막병증으로 인한 시력 감소 완화  : 은행잎추출물을 6개월간 복용하면 당뇨성 망막병증으로 시력이 감소한 환자들의 시력 회복에 도움이 될 수 있다는 연구가 있다.  녹내장으로 인한 시각 장애 개선 : 은행잎추출물을 최대 12.3년 복용하면 녹내장 환자들의 시각 장애 증상을 개선시킬 수 있다는 연구가 있다. 다른 연구에서는 은행잎추출물을 4주 복용했을 때 녹내장의 진행을 막지 못 한 결과를 얻었다.  말초동맥 질환으로 인한 혈액 순환 저하의 개선 : 연구에 의하면 은행잎추출물을 최소 24주 동안 복용하면 말초동맥질환으로 다리에 혈액 순환이 잘 안되는 사람들이 고통없이 걸을 수 있는 거리가 늘어나고 이러한 증상으로 수술을 할 필요성을 낮추는데 도움이 된다고 한다.  신체 기능 유지  : 은행잎추출물을 복용하면 혈액이 신체의 각 부분으로 원활히 이동해 신체 기능을 유지하는데 도움을 줄 수 있다.  월경 전 증후군(PMS) 증상 완화 : 은행잎추출물을 복용하면 월경 주기 16일...