まず、日のリストが必要です。
http://sqlfiddle.com/#!2/b14fc/14/0のようになります。
SELECT DISTINCT days
FROM (
SELECT DISTINCT DATE(TS_customer) days
FROM customer
UNION
SELECT DISTINCT DATE(TS_verified) days
FROM customer
) AS alldays
WHERE days IS NOT NULL
ORDER BY days
次に、日ごとの顧客数の概要が必要です。それはとても簡単ですhttp://sqlfiddle.com/#!2/b14fc/16/0 :
SELECT DATE(TS_customer) days, COUNT(TS_customer)
FROM customer
GROUP BY days
日ごとの検証の要約も同様に簡単です。
次に、これら 3 つのサブクエリを結合する必要があります http://sqlfiddle.com/#!2/b14fc/29/0。
SELECT alldays.days, custcount, verifycount
FROM (
SELECT DISTINCT DATE(TS_customer) days
FROM customer
UNION
SELECT DISTINCT DATE(TS_verified) days
FROM customer
) AS alldays
LEFT JOIN (
SELECT DATE(TS_customer) days, COUNT(TS_customer) custcount
FROM customer
GROUP BY days
) AS cust ON alldays.days = cust.days
LEFT JOIN (
SELECT DATE(TS_verified) days, COUNT(TS_verified) verifycount
FROM customer
GROUP BY days
) AS verif ON alldays.days = verif.days
WHERE alldays.days IS NOT NULL
ORDER BY alldays.days
最後に、顧客や検証がない日0
ではなく表示する場合は、SELECT 行をhttp://sqlfiddle.com/#!2/b14fc/30/0に変更します。(null)
SELECT alldays.days,
IFNULL(custcount,0) AS custcount,
IFNULL(verifycount,0) AS verifycount
それがどうなるか見てください?結果セットを段階的に構築します。