Mysql
 sql >> Database >  >> RDS >> Mysql

Come posso ottenere il conteggio dei clienti al giorno per cliente unico e abituale per una data specifica?

Puoi ottenere il totale degli ordini al giorno raggruppando su OrderDate:

SELECT OrderDate, COUNT(OrderNumber) AS total FROM orders GROUP BY OrderDate

E puoi ottenere il n. dei primi ordini al giorno dalla seguente query:

SELECT OrderDate, COUNT(q1.CustomerID) AS first FROM (SELECT CustomerID, min(OrderDate) AS OrderDate FROM orders GROUP BY CustomerID)q1 GROUP BY q1.OrderDate

Ora unisciti a questi due su OrderDate per ottenere la distribuzione dei primi e ripetuti ordini:

SELECT a.OrderDate, a.first, (b.total - a.first) AS repeated FROM
(SELECT OrderDate, COUNT(q1.CustomerID) AS first FROM (SELECT CustomerID, min(OrderDate) AS OrderDate FROM orders GROUP BY CustomerID)q1 GROUP BY q1.OrderDate)a
JOIN
(SELECT OrderDate, COUNT(OrderNumber) AS total FROM orders GROUP BY OrderDate)b
on(a.OrderDate = b.OrderDate)