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

标签 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 月份注册用户的交易历史记录。

我想看到的是他们首次购买和注册日期之间的天数差异。

请帮忙。

最佳答案

试试这个查询:

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

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

关于mysql - 计算注册日期和首次购买日期之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33685913/

相关文章:

mysql - 合并行但维护单独的列

php - 无法获取表单数据以发布到 SQL(使用 MySQL 5.5.25)

php - Mysql查询结果未使用php将文件保存为csv格式

mysql - 删除 phpmyadmin 中重复的前缀

MySQL限制索引

Mysql Unix-时间戳日期格式

mysql - 哪个查询更好更高效 - mysql

mysql - Mocha 测试与数据库的连接

mysql - 如何优化这个慢查询?

sql - 每月 Wordpress 帖子数