2016-01-27 74 views
0

我有一項任務,可以從我們的表中找到唯一的用戶來處理日子。連續獲取唯一身份用戶

我想要得到的是

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

爲了得到未來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);