如何查看每个月的日活跃用户数?

问题描述 投票:0回答:1

输入:

Activity
表:

用户ID session_id 活动日期 活动类型
1 1 2019-07-20 开放会话
1 1 2019-07-20 向下滚动
1 1 2019-07-20 结束_会话
2 4 2019-07-20 开放会话
2 4 2019-07-19 发送消息
2 4 2019-07-19 结束_会话
3 2 2019-07-19 开放会话
3 2 2019-07-19 发送消息
3 2 2019-07-19 结束_会话
4 3 2019-06-25 开放会话
4 3 2019-06-25 结束_会话
4 3 2019-06-20 开放会话
4 3 2019-06-20 结束_会话
5 6 2019-06-03 开放会话
5 6 2019-06-03 向下滚动
5 6 2019-06-03 结束_会话
6 8 2019-05-25 开放会话
6 8 2019-05-25 发送消息
6 8 2019-05-25 结束_会话
7 9 2019-05-10 开放会话
7 9 2019-05-10 结束_会话
7 9 2019-04-25 开放会话
7 9 2019-04-25 结束_会话
8 7 2019-04-20 开放会话
8 7 2019-04-20 结束_会话

所需输出:

活跃用户
2019-07 3
2019-06 2
2019-05 2
2019-04 2

编写一个解决方案来查找每月的每日活跃用户数。如果用户在某一天至少进行了一项活动,则该用户在某一天处于活跃状态。

原来的问题要简单得多,它只需要找到以

30
结尾的
2019-07-27
天(包含在内)的每日活跃用户数,我解决了它,所以我升级了它,但一直在努力解决它。你们能帮助我使用可以将这些 Activity_date 分组为月份的语法吗?

sql
1个回答
0
投票

在 MySQL 中你可以这样做:

SELECT 
    DATE_FORMAT(activity_date, '%Y-%m') AS month, 
    COUNT(DISTINCT user_id) AS active_users
FROM 
    activity
WHERE 
    activity_date <= '2019-07-27'
GROUP BY 
    month
ORDER BY 
    month;
© www.soinside.com 2019 - 2024. All rights reserved.