Я пытаюсь выбрать строки, в которых 3+ сообщения находятся в интервале 14 дней.
Например:
User | id_post | date
1 | 12 | 2018-01-01
1 | 13 | 2018-01-05
1 | 14 | 2018-01-21
1 | 15 | 2018-01-27
1 | 16 | 2018-01-29
2 | 17 | 2018-01-01
2 | 18 | 2018-01-20
2 | 19 | 2018-02-17
2 | 20 | 2018-03-07
2 | 21 | 2018-04-29
Пользователь = OwnerUserId
дата = дата создания
В этом случае мне нужно вернуть только пользователя 1, потому что у него есть сообщения, которые находятся в 14 днях.
Пожалуйста, помогите мне, как я могу получить это. Спасибо
Обновление: у пользователя должны быть публикации, опубликованные с интервалом в 14 дней. Это может быть больше, например, если последний день наступил в 2019 году, но в 2018 году было опубликовано 3 сообщения в течение 14 дней - это нормально
теперь у меня есть (данные получаются из data.stackexchange stackoverflow) и попытался применить
select OwnerUserId from Posts as p
where OwnerUserId in (select Users.id from Users WHERE YEAR (Users.CreationDate) >= 2017)
AND YEAR (p.CreationDate) >= 2018
AND p.Tags like '%sql%'
join (select OwnerUserId, CreationDate as startdate, dateadd(day,14,CreationDate) as enddate
from Posts) as r
on p.OwnerUserId = r.OwnerUserId and p.CreationDate between r.startdate and r.enddate
group by p.OwnerUserId, CreationDate
having count(*) >= 3
но он отвечает
Incorrect syntax near the keyword 'join'.
Incorrect syntax near the keyword 'as'.
Я новичок здесь и в SQL, поэтому я точно не знаю, как объединить мой предыдущий 'filterr' и текущее объединение с датой