我试图计算客户的“平均生命价值”。这意味着,所有客户与我们在一起期间的平均总花费是多少&也就是之前30天的平均花费。
表中的数据(客户):
|-----------------------|
| ID | FirstName |
|-----------------------|
35 John
84 Mike
90 Cassie表中的数据(tblservice):
|---------------------------------------------------|
| serviceID | Timing | Total | customerID |
|---------------------------------------------------|
1 3/10/2012 5.00 35
2 3/19/2012 5.00 35
3 3/20/2012 10.00 35
4 3/25/2012 10.00 84
5 4/15/2012 10.00 84注意:表"customer“和"tblservice”是一对多的关系。
这就是我到目前为止得到的数据,它计算了每一位顾客购买商品的平均花费。但我不需要它来计算现在的平均购买成本。
我试图计算每个客户的总支出的平均值。因此,它必须首先将每个客户的所有采购总量,然后除以客户的总数。
表布局在上面的将计算客户35 as ((5+5+10)/3) = 6.66和客户84 as ((10+10)/2) = 10.00.的平均生存期值。
然后,为了找到整个客户群的平均寿命值,应该将每个客户的结果平均为:((6.66+10)/2) = 8.33
请帮助,以下是到目前为止的两个查询(一个是一直查询,另一个是过去30天的查询):
SELECT AVG(tblservice.Total) AS LifetimeValue FROM tblservice;
SELECT AVG(tblservice.Total) AS LifetimeValue FROM tblservice
WHERE ((tblservice.Timing)>=DateAdd("d",-30,Date()));发布于 2012-06-01 07:02:45
您需要先计算每个客户的平均值,然后再对它们进行平均值:
select avg(custavg) from (SELECT tblservice.customerid, Avg(tblservice.total) AS custavg FROM tblservice GROUP BY tblservice.customerid);发布于 2012-06-01 07:17:12
执行子查询以获得每个客户的平均值:
SELECT
AVG(customer_ltv)
FROM
(SELECT
customerID,
AVG(Total) AS customer_ltv
FROM
tblservice
GROUP BY
customerID) avgs如果需要按时进行筛选,则将WHERE子句添加到内部查询中。
https://stackoverflow.com/questions/10841949
复制相似问题