Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como posso obter a contagem de clientes por dia por cliente único e recorrente para uma data específica?


Você pode obter o total de pedidos por dia agrupando em OrderDate:
SELECT OrderDate, COUNT(OrderNumber) AS total FROM orders GROUP BY OrderDate

E você pode obter o não. de primeiros pedidos por dia a partir da seguinte consulta:
SELECT OrderDate, COUNT(q1.CustomerID) AS first FROM (SELECT CustomerID, min(OrderDate) AS OrderDate FROM orders GROUP BY CustomerID)q1 GROUP BY q1.OrderDate

Agora junte esses dois em OrderDate para obter a distribuição dos primeiros pedidos e pedidos repetidos:
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)