【问题标题】:Count unique customers计算唯一客户
【发布时间】:2017-02-27 09:50:45
【问题描述】:

提前感谢您的帮助。我已经研究这个问题几个小时了。我有一个包含以下列的表格:

OrderID | CustomerID | Date      | Course
--------|------------|-----------|----------
14954   | 13440      |16.10.2016 | Zürich
14955   | 13441      |17.10.2016 | Bern
14956   | 13441      |17.10.2016 | Aargau
14957   | 13442      |17.10.2016 | Bern
14958   | 10483      |17.10.2016 | Zürich
14959   | 13442      |18.10.2016 | Solothurn

我想计算客户在特定日期收到的第一笔订单,按课程细分。该查询应为 17.10.2016 产生以下结果。

Bern: 2
Aargau: 0
Zürich: 1

我已经尝试过 DISTINCT 和嵌套查询,例如:

SELECT Count(*) AS Anzahl 
FROM   (SELECT DISTINCT kundennummer 
        FROM   (SELECT datum, 
                       kundennummer 
                FROM   unterlagenbestellungen 
                WHERE  kurs LIKE 
       '%" & DgvStatUnterlagenbestellungen.Rows(x).HeaderCell.Value & "%') 
        WHERE  datum BETWEEN # " & mindatum & " # AND # " & maxdatum & " # )

非常感谢您的帮助

【问题讨论】:

    标签: sql ms-access count


    【解决方案1】:

    试试这个:

    SELECT 
     cource,
     COUNT(customer_id) 
    FROM
     [your table]
    WHERE DATE = '2016-06-17' 
    GROUP BY cource 
    ORDER BY cource 
    

    【讨论】:

      【解决方案2】:

      这也应该在 Access 中工作:

      SELECT t1.Course, Count(t2.OrderID)
      FROM tab AS t1
      LEFT JOIN -- get all Courses for that day
       ( -- find the minimum order per customer
         SELECT CustomerID, Min(OrderID) AS OrderID
         FROM tab AS t2
         WHERE Date='17.10.2016'
         GROUP BY CustomerID
       ) AS t2
      ON t1.CustomerID = t2.CustomerID 
      AND t1.OrderID = t2.OrderID -- only one row per customer
      WHERE Date='17.10.2016'
      GROUP BY t1.Course
      

      【讨论】:

        猜你喜欢
        • 2020-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-24
        • 1970-01-01
        相关资源
        最近更新 更多