sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo puedo obtener el recuento de clientes por día por cliente único y repetido para una fecha específica?

Puede obtener el total de pedidos por día agrupando en OrderDate:

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

Y usted puede obtener el no. de primeros pedidos por día a partir de la siguiente 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

Ahora únase a estos dos en OrderDate para obtener la distribución de los pedidos iniciales y 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)