sql >> データベース >  >> RDS >> Mysql

特定の日付の一意のリピーターごとに1日あたりの顧客数を取得するにはどうすればよいですか?

    OrderDateでグループ化することにより、1日あたりの合計注文数を取得できます:

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

    そして、あなたはノーを得ることができます。次のクエリからの1日あたりの最初の注文の数:

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

    次に、OrderDateでこれら2つを結合して、最初の注文と繰り返しの注文の分布を取得します:

    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. MySQL-SELECT WHEREフィールドIN(サブクエリ)-非常に遅い理由

    2. MySQLデータベースにアラビア語でデータを保存

    3. データモデル

    4. MySQL IFNULL ELSE