1141. User Activity for the Past 30 Days I


Posted by ikl258794613 on 2024-02-26

Table: Activity

Column Name Type
user_id int
session_id int
activity_date date
activity_type enum

This table may have duplicate rows.
The activity_type column is an ENUM (category) of type ('open_session', 'end_session', 'scroll_down', 'send_message').
The table shows the user activities for a social media website.
Note that each session belongs to exactly one user.

Write a solution to find the daily active user count for a period of 30 days ending 2019-07-27 inclusively. A user was active on someday if they made at least one activity on that day.

Return the result table in any order.

The result format is in the following example.

Example 1:

Input:
Activity table:

user_id session_id activity_date activity_type
1 1 2019-07-20 open_session
1 1 2019-07-20 scroll_down
1 1 2019-07-20 end_session
2 4 2019-07-20 open_session
2 4 2019-07-21 send_message
2 4 2019-07-21 end_session
3 2 2019-07-21 open_session
3 2 2019-07-21 send_message
3 2 2019-07-21 end_session
4 3 2019-06-25 open_session
4 3 2019-06-25 end_session

Output:

day active_users
2019-07-20 2
2019-07-21 2

Explanation: Note that we do not care about days with zero active users.

SELECT
    activity_date AS day,
    COUNT(DISTINCT user_id) AS active_users
FROM Activity
WHERE
    DATEDIFF('2019-07-27', activity_date) < 30
    AND
    activity_date <= '2019-07-27'
GROUP BY activity_date;

#SQL







Related Posts

Redux middleware、CSR vs SSR、SSR  介紹

Redux middleware、CSR vs SSR、SSR 介紹

自動化測試 x Puppeteer - 玩偶QA參一咖 Day07

自動化測試 x Puppeteer - 玩偶QA參一咖 Day07

React 性能優化大挑戰:一次理解 Immutable data 跟 shouldComponentUpdate

React 性能優化大挑戰:一次理解 Immutable data 跟 shouldComponentUpdate


Comments