0
我有一張日期和用戶的表格。我需要幫助,試圖找出如何只計算前一日期後5天的日期。從前一天開始計算的日期的計數
id|users_id|date
--------------------------------
1 | 1 | 2013-08-01 00:00:00
2 | 2 | 2013-08-03 00:00:00
3 | 1 | 2013-08-04 00:00:00
4 | 1 | 2013-08-06 00:00:00
5 | 2 | 2013-08-06 00:00:00
6 | 2 | 2013-08-10 00:00:00
7 | 2 | 2013-08-11 00:00:00
通過下面的例子,我應該得到2用戶1和2的用戶2.我試圖做一個子查詢,但我無法在時間戳進行比較的通過。任何幫助將非常感激。謝謝。
這是我的一些示例查詢。
SELECT
tbl1.users_id,
COUNT(tbl2.date)
FROM table tbl1
LEFT JOIN table tbl2
ON tbl2.users_id = tbl1.users_id
AND tbl2.date > DATE_ADD(tbl1.date, INTERVAL 5 DAY)
GROUP BY tbl1.users_id;
SELECT
tbl1.users_id,
COUNT(tbl2.date)
FROM table tbl1
LEFT JOIN (
SELECT users_id, date
FROM table
WHERE date > DATE_ADD(tbl1.date, INTERVAL 5 DAY)
) tbl2 ON tbl1.users_id = tbl1.users_id
GROUP BY tbl1.users_id;
最後一種方法顯然不起作用,因爲我不能把tbl1的日期放在子查詢中。
你嘗試過什麼SQL? –
其實我在前一天的5天后不太明白你的意思?什麼是以前的日期? 根據您的查詢看來,用戶1返回0,用戶2返回3? – Jianhong
上一個日期是上次用戶日期。例如,2013-08-01是2013-08-04的上一個日期。現在的問題是,如果2013-08-04是2013-08-01之後的5天,我只想計算一下。我會數2013-08-06。然後,我要計算2013-08-06之後至少5天的下一行。 –