Я пытаюсь выбрать количество пользователей, оставшихся в определенном диапазоне дат, и это было успешно с помощью этого запроса и таблицы ниже:
+----------+-------------+
| Field | Type |
+----------+-------------+
| id | varchar(17) |
| log_date | date |
+----------+-------------+
SELECT last_day.log_date, COUNT(distinct last_day.id) as users_num
FROM (SELECT DISTINCT log_date, id
FROM `userActivity`) this_day
JOIN (SELECT DISTINCT log_date, id
FROM `userActivity`) last_day
ON this_day.id = last_day.id
AND this_day.log_date = "2018-10-01"
AND last_day.log_date BETWEEN "2018-10-01" AND "2018-10-30"
GROUP BY log_date;
Но проблема, с которой я сталкиваюсь, заключается в том, чтоЯ хочу предположить, что каждый день диапазона дат - это день 0. (аналогично следующему примеру):
Обратите внимание, что первая строкана картинке - среднее из приведенных ниже результатов, которые мне нужно рассчитать.Кто-нибудь знает, как я могу улучшить свой запрос, чтобы получить результат, как на картинке?