吗
我有一个任务,从我们的表格中查找累积天数的唯一用户。
我想得到的是
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);