Anda dapat menggunakan kueri berikut:
SELECT CONCAT(EXTRACT(MONTH FROM startedPayingDate), '-',
EXTRACT(YEAR FROM startedPayingDate)) AS "Month",
COUNT(*) AS "Total AB Paying Customers"
FROM (
SELECT customer_id, MIN(created_at) AS startedPayingDate
FROM customerusermap AS cm
WHERE NOT EXISTS (SELECT 1
FROM users AS u
WHERE cm.user_id = u.id)
GROUP BY customer_id ) AS t
GROUP BY 1
Saya menggunakan NOT EXISTS
operator untuk mengecualikan catatan yang berhubungan dengan pelanggan 'membayar sendiri' (jika itu benar-benar niat Anda).
Setelah Anda mendapatkan MIN(created_at)
tanggal per customer_id
, maka Anda dapat dengan mudah menghitung per tanggal dalam kueri luar.