连续几天获取唯一身份用户



我有一个任务,从我们的表格中查找累积天数的唯一用户。

我想得到的是

select count(distinct(userid))  from session_tab where 
date(session) = '2016-01-15 00:00:00'
union all
select count(distinct(userid))  from session_tab where 
date(session in ('2016-01-15 00:00:00','2016-01-16 00:00:00')
union all
select count(distinct(userid))  from session_tab where 
date(session in ('2016-01-15 00:00:00','2016-01-16 00:00:00','2016-01-16 00:00:00')

等等...在接下来的 30 天里。

有人可以让我知道如何实现这一目标

要获得接下来的 30 天,请在 CURDATE()CURDATE() 加上 30 天之间。之后,这只是一个计数和分组的情况:

SELECT DATE(session), COUNT(DISTINCT userid)
  FROM session_tab
  WHERE DATE(session) BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 30 DAY)
  GROUP BY DATE(session)
  ORDER BY DATE(session);

最新更新