sql >> Databáze >  >> RDS >> Mysql

Jak mohu získat počet zákazníků za den podle jedinečného a opakujícího se zákazníka pro konkrétní datum?

Celkový počet objednávek za den můžete získat seskupením podle OrderDate:

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

A můžete dostat ne. prvních objednávek za den z následujícího dotazu :

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

Nyní připojte tyto dva na OrderDate a získejte distribuci prvních a opakovaných objednávek:

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)


  1. Nelze použít UPDATE s klauzulí OUTPUT, když je na stole spouštěč

  2. Zkoumání možností úložiště pro MariaDB

  3. Jak zobrazit obrázek z mysql blob

  4. JSON_VALUE() v MySQL