2015-11-13 3 views
0

Итак, у меня есть две таблицы:Расчет разницы между датой регистрации и датой первой покупки

member_id  item    purchase_date 
---------  ----    ------------- 

2326546  iron rod   2015-08-15 
8410245  digital camera  2015-08-25 
5820364  earphones   2015-08-30 
8410245  monopad    2015-09-02 
8410245  lens    2015-09-02 
8410245  cleaning kit  2015-09-02 
9451357  desk organizer  2015-09-13 
9451357  storage box   2015-09-13 
7635926  sticky pads   2015-10-05 
1988162  pen holder   2015-10-05 



member_id  signup_date 
---------  ----------- 
1988162  2015-08-01 
8410245  2015-08-05 
5820364  2015-08-05 
2326546  2015-08-20 
9451357  2015-08-22  
7635926  2015-08-30 

Я получил истории пользователей транзакций для тех, которые зарегистрированны в августе.

Что я хочу видеть, это разница в днях первой покупки, которую они совершили, и даты их регистрации.

Пожалуйста, помогите.

+1

Соединения, дата и интервал, [Функции даты Mysql] (http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html) – Drew

+0

Я вижу, что вы парень BI. Можете ли вы добавить sqlfiddle.com для кого-то (с левой стороны) и разместить URL-адрес, чтобы кто-то мог на него нанести удар? – Drew

ответ

3

Попробуйте этот запрос:

SELECT t.member_id, DATEDIFF(t.first_purchase_date, s.signup_date) 
FROM 
(
    SELECT member_id, MIN(purchase_date) AS first_purchase_date 
    FROM purchase 
    GROUP BY member_id 
) t INNER JOIN signup s ON t.member_id = s.member_id 

SQLFiddle

Вы заметите, что одна из записей в запросе имеет отрицательное значение. Это связано с тем, что у одного из ваших пользователей была первая покупка до его фактической даты регистрации.

+0

Выглядит хорошо для меня Тим, несмотря на его одну строку странных данных. – Drew

+0

Спасибо! Большая помощь! Извинения за причудливые данные. Я спешил :) –

+0

Не беспокойтесь, рад помочь вам. –