计算注册日期和首次购买日期之间的差异

时间:2015-11-13 04:23:49

标签: mysql

所以,我有两张桌子:

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

我获得了8月份注册用户的用户交易历史记录。

我想看到的是他们首次购买时的差异,以及他们注册的日期。

请帮忙。

1 个答案:

答案 0 :(得分: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

您会注意到查询中的一条记录存在负差异。这是因为您的一位用户在实际注册日期之前首次购买。