php - 从订单表中查找新买家和回头客

标签 php mysql sql database

我有一个现有的电子商务数据库,其中包含相当标准的销售表。相关的表格是:

  1. 订单表。 这些字段是这样的: OrderID、CustomerID、OrderDate、...

  2. 客户表。 CustoerID、CustomerFirstName、CustomerLastName、...

我需要找到两个值,即:

  1. 新买家总数(特定时间段内*)

    • 基本上都是特定时间段内的首次购买者
  2. 总回头客(一定时间段内*)

    • 基本上,这些是在该时间段之前购买过的买家

    • 时间段,我们会提供作为输入,比如1周内

我的数据库在 MySQL 中。

问题:

获得这两个总数的最简单和最有效的方法是什么? 1.新买家总数 2.回头客总数

我需要用 PHP 编写程序吗?或者我可以简单地使用 SQL 语句来实现此目的?

感谢您的帮助。

最佳答案

这完全可以用 SQL 来完成:

首次购买者数量:

SELECT
  COUNT(DISTINCT CustomerID) 
FROM Orders 
WHERE OrderDate BETWEEN <startdate> AND <enddate>
/* Buyers with only one order record */
AND CustomerID IN (SELECT CustomerID FROM Orders GROUP BY CustomerID HAVING COUNT(*)=1)

回头客数量:

SELECT
  COUNT(DISTINCT CustomerID) 
FROM Orders 
WHERE OrderDate BETWEEN <startdate> AND <enddate>
/* Buyers with more than one order record */
AND CustomerID IN (SELECT CustomerID FROM Orders GROUP BY CustomerID HAVING COUNT(*)>1)

关于php - 从订单表中查找新买家和回头客,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9350431/

相关文章:

PHP函数滥用?

mysql - 在大型数据集上计算平均值 (AVG) 和按周分组花费的时间太长

php - MYSQL多词搜索结果

mysql - 获得 1 小时的房间可用性增量 MySQL

php - 如何检索最新的编号数据库中的第三条记录?

php - 如何在 DIV 中显示标题?

php - 如何限制 PHP 搜索表单中的查询至少需要五个正确字符

PHPUnit 测试和抽象类,其方法名为 'Method'

javascript - 如何使用 Angular $http 将数据 POST 到 PHP

SQL Server Full Text Search Condition for FORMSOF for phrase 排除停用词