Разница между датами при группировке в SQL - PullRequest
1 голос
/ 24 марта 2010

У меня есть таблица покупок, содержащая user_id и date_of_purchase.

Мне нужно иметь возможность выбрать всех пользователей, которые сделали 2 покупки в течение 12 месяцев друг от друга. Даты могут быть в любой момент времени, если они находятся на расстоянии менее 12 месяцев.

, например

user_id      date_of_purchase
123          01/Jan/2010
124          01/Aug/2010
123          01/Feb/2010
124          05/Aug/2008

В этом примере я хочу user_id 123

Ответы [ 2 ]

1 голос
/ 24 марта 2010
select distinct user_id 
from MyTable t1
inner join MyTable t2 on t1.user_id = t2.user_id 
where t1.date_of_purchase - t2.date_of_purchase <= 365

Примечание: это не относится к високосным годам.

0 голосов
/ 24 марта 2010

В Oracle есть функция DATE_DIFF - я думаю, что эквивалент MS не имеет подчеркивания (DATEDIFF).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...