Leetcode PostgreSQL User Activity for the Past 30 Days I

업데이트:

문제

Link

코드

-- Write your PostgreSQL query statement below
SELECT activity_date AS day, COUNT(DISTINCT user_id) AS active_users FROM Activity
WHERE activity_date > '2019-07-27'::date - INTERVAL '30 days'
AND activity_date <= '2019-07-27'
GROUP BY activity_date

결과

Link

설명

  1. 2019-07-27일 까지 최근 30일 동안 활성화 유저를 계산하는 문제이다.

  2. 2019-07-27일에서 30일을 차감한 날자 초과부터 해당 날 이전까지의 Activity 테이블 내 데이터가 문제의 활성 유저를 구하는 조건이 된다.

  3. 활성화 유저는 Activity 테이블에서 ‘open_session’과 ‘end_session’의 로그의 시간동안 세션이 유지되며 하루에 한 번의 활동을 수행해야 세션이 유지되므로, user_id가 중복되지 않은 일자까지가 활성 유저의 수가 된다.

댓글남기기