统计每个日期登录新用户个数。
1、查找新用户,即对于user_id,其登录的最小日期,则为新用户
select user_id, min(date) from login group by user_id
2、统计每个日期登录的新用户个数
首先,统计每个日期登录的用户个数,如下
select date, count(*) from login group by date
其次,在以上基础上指定新用户的条件,以user_id,date两者作为筛选条件即可找出
select
date,
count(distinct user_id) as new
from login
where (user_id, date) in (
select
user_id,
min(date)
from login
group by user_id
)
group by date
order by date3、但2作为结果,只能通过1个实例,比如某日没有新用户登录,则该日期会被过滤不显示,而根据题目要求,应该显示为0,因此可以使用case when语句,即最终结果如下:
select
date,
sum(case when (user_id, date) in ( # 注意此处使用sum而非使用count
select
user_id,
min(date)
from login
group by user_id) then 1 else 0 end) as new
from login
group by date
order by date


京公网安备 11010502036488号