我有兩張表,customerusermap和用戶。每當用戶註冊我們的產品時,他們會立即將其添加到名爲users的表中,但直到他們開始爲用戶付款時纔會將其添加到名爲customerusermap的表中。根據內部連接發現的最早日期進行計數?
在使用者表看起來像這樣:
id | customer_id | firstname | lastname | created_at
-------------------------------------------------------
1725 | cus_3hEmhErE2jbwsO | Abby | Smith | 2015-03-19
1726 | cus_7oNweUrE4jbwr2 | Sam | Peters | 2015-06-20
的customerusermap表看起來像這樣:
customer_id | user_id | created_at
------------------------------------------
cus_3hEmhErE2jbwsO | 9275 | 2015-09-01
cus_3hEmhErE2jbwsO | 2628 | 2015-09-05
cus_3hEmhErE2jbwsO | 2358 | 2015-07-05
cus_3hEmhErE2jbwsO | 3158 | 2015-08-05
cus_3hEmhErE2jbwsO | 2487 | 2015-08-05
cus_3hEmhErE2jbwsO | 6044 | 2015-08-05
cus_7oNweUrE4jbwr2 | 8094 | 2015-08-25
cus_7oNweUrE4jbwr2 | 2345 | 2015-09-02
在這個例子中,阿比(cus_3hEmhErE2jbwsO)的支付6個用戶。她開始爲用戶2358 2015-07-05付款,因此她應該被視爲付費用戶07-2015,而不是03-2015。山姆正在爲2個用戶付費,他在08-2015年開始爲用戶8094付款,因此他被認爲是08-2015的付費用戶,而不是06-2015。我有抓住查詢和組由每月付費用戶數:
SELECT concat(extract(MONTH from u.created_at),'-',extract(year from u.created_at)) as "Month",
COUNT(distinct u.email) as "Total AB Paying Customers"
FROM customerusermap AS cm, users AS u
WHERE cm.customer_id=u.customer_id AND cm.user_id <> u.id
GROUP BY 1,extract(month from u.created_at),extract(year from u.created_at)
ORDER BY extract(year from u.created_at),extract(month from u.created_at);
但由客戶被添加到用戶表,而不是他們真正開始支付日止這抓住和計數。我如何獲取計數,以便在customerusermap表中獲取最早的日期?有什麼需要的輸出應該看起來像這個例子是:
Month | Total AB Paying Customers
-------------------------------------
07-2015 | 1
08-2015 | 1
你能提供需要的輸出嗎? – igr
嘿,請看編輯的問題! –
@AshleyI。請檢查我的答案。 –