查询近30天活跃用户数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查询近30天活跃用户数相关的知识,希望对你有一定的参考价值。


题目描述:

活动纪录表:Activity

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| user_id       | int     |
| session_id    | int     |
| activity_date | date    |
| activity_type | enum    |
+---------------+---------+
该表是用户在社交网站的活动记录。
该表没有主键,可能包含重复数据。
activity_type 字段为以下四种值 (open_session, end_session, scroll_down, send_message)。
每个 session_id 只属于一个用户。
 

请写SQL查询出截至 2019-07-27(包含2019-07-27),近 30天的每日活跃用户(当天只要有一条活跃记录,即为活跃用户),

查询结果示例如下:

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   |
+---------+------------+---------------+---------------+

Result table:
+------------+--------------+ 
| day        | active_users |
+------------+--------------+ 
| 2019-07-20 | 2            |
| 2019-07-21 | 2            |
+------------+--------------+ 
非活跃用户的记录不需要展示。

解题思路:

条件,一个月内,按照日期分组

SELECT activity_date day , COUNT(DISTINCT user_id) activity_user
FROM Activity
WHERE activity_date BETWEEN 2019-06-28 AND 2019-07-27
GROUP BY activity_date

 

以上是关于查询近30天活跃用户数的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode(数据库)- 查询近30天活跃用户数

flink sql 近3天登录次数

flink sql 近3天登录次数

用户画像介绍

mysql查询今天,昨天,近7天,近30天,本月,上一月数据

mysql查询今天昨天近7天近30天本月上一月的SQL语句