2012-01-30 49 views
2

我想了解users表中創建的記錄與subscriptions表中用戶的首次購買之間的關係。兩個表都有created_at作爲字段,而users.id=subscriptions.user_id加入SQL的時間差

我想要輸出的內容包括用戶數以及他們加入的那一天到他們第一次購買的那一天之間的時間(以天爲單位)。

days, users 
0, 45 
1, 63 
2, 14 
3, 7 

回答

3
SELECT 
     days 
    , COUNT(*) AS users 
FROM 
     (SELECT 
       DATEDIFF(MIN(s.created_at), u.created_at) AS days 
     FROM 
       users AS u 
      JOIN 
       subscriptions AS s 
      ON 
       s.user_id = u.id 
     GROUP BY 
       u.id 
    ) AS grp 
GROUP BY 
     days