This is a retention query i need to fetch continuous data from db i have written this query with two tables
- deviceinfodatas - has the id , created_at time
sessions - deviceid, start_time
SELECT
u.DayOffset as Date,
SUM(s.DayOffset = 0) AS d0,
SUM(s.DayOffset = 1) AS d1,
SUM(s.DayOffset = 2) AS d2,
SUM(s.DayOffset = 3) AS d3
FROM
( SELECT id, DATE(created_at) AS DayOffset FROM deviceinfodatas WHERE created_at BETWEEN '2017-10-01' AND '2017-12-30') as u LEFT JOIN
( SELECT DISTINCT sessions.deviceid, DATEDIFF(DATE(sessions.start_time), DATE(deviceinfodatas.created_at)) AS DayOffset FROM sessions
LEFT JOIN deviceinfodatas ON (deviceinfodatas.id = sessions.deviceid) WHERE sessions.start_time BETWEEN '2017-10-01' AND '2017-12-30' ) as s ON s.deviceid = u.id GROUP BY u.DayOffset
My result is
Date d0 d1 d2 d3
2017-10-25 1 0 0 0
2017-10-27 1 0 0 0
2017-10-31 0 0 1 1
2017-11-02 1 0 0 0
2017-11-03 1 0 0 0
2017-11-06 1 0 0 0
2017-11-08 1 0 0 0
2017-11-09 0 0 1 0
2017-11-13 0 0 1 0
2017-11-16 5 1 0 0
But i need a continuous date
as
Date d0 d1 d2 d3
2017-10-25 1 0 0 0
2017-10-26 0 0 0 0
2017-10-27 1 0 0 0
2017-10-28 0 0 0 0
2017-10-29 0 0 0 0
2017-10-30 0 0 0 0
2017-10-31 0 0 1 1
.....
2017-11-16 5 1 0 0
And also based on date range the count of day d0,d1,d2,d3,d4,d5.... dn has to increased dynamically
I am a beginner in Mysql please do help with this query to achieve my result
i has referenced Continuous date and Daily retention query
Thank you in advance