查询每日新用户数
题目需求
从用户登录明细表(user_login_detail)中查询每天的新增用户数,若一个用户在某天登录了,且在这一天之前没登录过,则任务该用户为这一天的新增用户。期望结果如下:
login_date_first(日期) | user_count(新增用户数) |
---|---|
2021-09-21 | 1 |
2021-09-22 | 1 |
2021-09-23 | 1 |
2021-09-24 | 1 |
2021-09-25 | 1 |
2021-09-26 | 1 |
2021-09-27 | 1 |
2021-10-04 | 2 |
2021-10-06 | 1 |
代码实现
select
login_date_first,
count(*) user_count
from
(
select
user_id,
min(date_format(login_ts, 'yyyy-MM-dd')) login_date_first
from user_login_detail
group by user_id -- 查询用户首次登录日期
)t1
group by login_date_first -- 按日期计算首次登录用户人数