连续几天获得独特用户

时间:2016-01-27 20:25:51

标签: mysql

我有一项任务是从我们的表中找到累积性日子的唯一用户。

我想得到的是

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天。

有人可以告诉我如何实现这一目标

1 个答案:

答案 0 :(得分:1)

要获得接下来的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);