Я пытаюсь получить максимальное значение для пользователя в течение определенного периода времени.Диапазон дат определяется первым появлением каждого пользователя в отдельном временном диапазоне и за 2 недели до этого, то есть первый раз, когда пользователь появляется в октябре, - 2018-10-01, поэтому диапазон - с 2018-09-18до 2018-10-01.В этом диапазоне я ищу максимальное значение столбца.Все эти данные взяты из одной таблицы.
Пример:
+------------+------------+---------+
| Profile_ID | Date | Value |
+------------+------------+---------+
| 1 | 2018-10-05 | 100 |
| 2 | 2018-10-02 | 50 |
| 2 | 2018-10-04 | 78 |
| 2 | 2018-10-05 | 56 |
| 1 | 2018-10-08 | 110 |
| 1 | 2018-10-01 | 99 |
| 2 | 2018-09-30 | 88 |
| 1 | 2018-09-27 | 106 |
+------------+------------+---------+
Я ищу пиковое значение VALUE за две недели до и включая первое вхождение после 1 октября.будет 2018-10-01 для ПОЛЬЗОВАТЕЛЯ 1 и 2018-10-02 для пользователя 2. Тогда пиковое значение будет 106 и 88 соответственно.
Я пытался код:
SELECT max(Value)
FROM table
WHERE Date BETWEEN (
SELECT (min(Date) - INTERVAL 2 week)
FROM table
WHERE stamp between '2018-10-01' AND '2018-10-25'
GROUP BY profile_id
)
AND
(
SELECT min(Date)
FROM table
WHERE stamp between '2018-10-01' AND '2018-10-25'
GROUP BY profile_id
)
Я получаю сообщение об ошибке:
Синтаксическая ошибка: около или около «2»
, но я думаю, что это только начало моих проблем.Кто-нибудь знает лучший способ найти максимальное значение в этом временном диапазоне для каждого profile_id?