我有一项任务是从我们的表中找到累积性日子的唯一用户。
我想得到的是
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天。
有人可以告诉我如何实现这一目标
答案 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);