본문 바로가기

TOOLS/My SQL

[My SQL] DAU/WAU/MAU 활성 유저(Active User) 집계 / Stickness 지표

728x90
728x90

안녕하세요. 
오늘은 기간 별 활성 유저(Active User)의 의미와, 활성 유저를 집계하는 My SQL 쿼리문을 알아보겠습니다. 
 
먼저 활성 유저는 특정 기간 동안 앱을 이용한 사용자 수를 의미합니다.
 
My SQL 쿼리문 작성 시 특정 기간으로 그룹핑을 하고,
DISTINCT(중복X)된 유저의 아이디를 COUNT해주면 됩니다.
 
아래 쿼리문을 통해 자세한 내용 살펴보겠습니다!
 
 


 
 
아래 쿼리문에 사용된 테이블과 컬럼은 하단의 박스를 참고해주세요 :)

- Table : Visit
- Column : customer_id, visited_at

* visited_at 컬럼의 데이터는 '2023-03-14' 의 포맷으로 저장되어 있습니다.

 
 

|  DAU (Daily Active User)

: 일간 활성 사용자 수

 

예시 )

SELECT visited_at AS dalily,
       COUNT(DISTINCT customer_id) AS active_user
FROM User.visit 
GROUP BY dalily ;

 
 

|  WAU (Weekly Active User)

: 주간 활성 사용자 수

 
* visited_at 컬럼의 데이터는 2023-03-14' 의 포맷으로 저장되어 있기 때문에 이 데이터의 값을 '주'로 반환할 수 있도록 변환해야합니다.
DATE_FORMAT 함수를 사용하여 '년월일' 값을 '주'로 반환해주겠습니다.

DATE_FORMAT(visited_at, '%UW')

 
 

예시 )

SELECT DATE_FORMAT(visited_at, '%UW')AS weekly,
       COUNT(DISTINCT customer_id) AS active_user
FROM User.visit 
GROUP BY weekly ;

 
 

|  MAU (Monthly Active User)

: 월간 활성 사용자 수

 
* visited_at 컬럼의 데이터는 2023-03-14' 의 포맷으로 저장되어 있기 때문에 이 데이터의 값을 '월'로 반환할 수 있도록 변환해야합니다.
 
DATE_FORMAT 함수를 사용하여 '년월일' 값을 '년월'로 반환해주겠습니다.

DATE_FORMAT(visited_at, '%Y-%m')

 
 

예시 )

SELECT DATE_FORMAT(visited_at, '%Y-%m')AS monthly,
       COUNT(DISTINCT customer_id) AS active_user
FROM User.visit 
GROUP BY monthly ;

 
 
 
 
위에서 특정 기간 별 활성 유저를 파악하는 쿼리문을 살펴봤는데요.
위에서 확인된 유저 수를 통해, 서비스 의존도를 알아볼 수 있는 지표도 함께 소개드리겠습니다. 
 
 

|  Stickness (사용자 고착도) 

사용자 고착도 지표는 DAU / MAU 또는 DAU / WAU 비율로 계산합니다. 
MAU 사용자 중 특정 일에 접속한 사람의 비율을 계산하는 것 인데요.
 
월간 순수 이용자가 하루 동안, 1주 동안 얼마나 접속했는지를 알 수 있습니다!
 

Stickness (%) = (DAU / MAU) * 100

 
 
 


⇩ 더 읽어보면 좋은 글 🧚‍♀️ DATE_FORMAT 함수
2023.03.02 - [TOOLS/My SQL] - [My SQL] DATE_FORMAT 함수 / 날짜에서 요일, 시간 값 출력하기

[My SQL] DATE_FORMAT 함수 / 날짜에서 요일, 시간 값 출력하기

이전 포스팅에서 요일별 매출 출력을 위해 DAYOFWEEK 함수를 활용해서 숫자형 데이터로 요일을 출력하는 방법을 소개했다. 2023.02.22 - [Tools/My SQL] - [My SQL] 요일별 매출 - DAYOFWEEK 함수 / 날짜에서 요일

4xyzw.tistory.com

 

728x90
728x90