从订单表中查找新买家和回头客
Posted
技术标签:
【中文标题】从订单表中查找新买家和回头客【英文标题】:Find New Buyers, and Returning Buyers from the Orders tables 【发布时间】:2012-03-10 03:53:26 【问题描述】:我有一个现有的电子商务数据库,其中包含相当标准的销售表。相关表格是:
订单表。 字段如下: OrderID、CustomerID、OrderDate、...
客户表。 客户 ID、客户名字、客户姓氏、...
我需要找到两个值,即:
新买家总数(特定时间段内*)
基本上都是一定时期内的第一次购买者回头客总数(特定时间段内*)
基本上,这些是在该时间段之前购买过的买家
时间段,我们将提供作为输入,例如 1 周内
我的数据库在 mysql 中。
问题:
获得这两个总数的最简单和最有效的方法是什么? 1. 新买家总数 2. 回头客总数
我需要用 php 编写程序吗?或者我可以简单地使用 SQL 语句来实现?
感谢您的帮助。
【问题讨论】:
【参考方案1】:这可以完全在 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)
【讨论】:
我认为这会奏效。非常感谢迈克尔...将尝试此代码!【参考方案2】:两者都有!您必须编写从数据库返回数据的 SQL 语句,并从 PHP 脚本中调用该语句来处理它。 SQL 语句使您能够检索数据,PHP 代码使您能够管理并最终在您的网页上预设数据(将其转换为 html 语言)。
这是常见的场景,但如果您需要更详细的代码过程,请使用google 并进行漂亮的编码!
【讨论】:
【参考方案3】:新买家总数 选择 c.* 来自客户 c,订单 o 其中 c.CustomerID = o.CustomerID 并且 c.CustomerID 不在(从订单 o1 中选择 o1.CustomerID)
回头客总数 新买家总数 选择 c.* 来自客户 c,订单 o 其中 c.CustomerID = o.CustomerID AND c.CustomerID in(SELECT o1.CustomerID from Orders o1)
您可以为两个查询添加时间范围
【讨论】:
以上是关于从订单表中查找新买家和回头客的主要内容,如果未能解决你的问题,请参考以下文章