首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >精确计算LTV

精确计算LTV
EN

Stack Overflow用户
提问于 2012-05-31 22:06:29
回答 2查看 1.3K关注 0票数 0

我试图计算客户的“平均生命价值”。这意味着,所有客户与我们在一起期间的平均总花费是多少&也就是之前30天的平均花费。

表中的数据(客户):

代码语言:javascript
复制
|-----------------------|
|   ID   |   FirstName  |
|-----------------------|
    35       John
    84       Mike
    90       Cassie

表中的数据(tblservice):

代码语言:javascript
复制
|---------------------------------------------------|
|   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天的查询):

代码语言:javascript
复制
SELECT AVG(tblservice.Total) AS LifetimeValue FROM tblservice;

SELECT AVG(tblservice.Total) AS LifetimeValue FROM tblservice
WHERE ((tblservice.Timing)>=DateAdd("d",-30,Date()));
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-01 07:02:45

您需要先计算每个客户的平均值,然后再对它们进行平均值:

代码语言:javascript
复制
select avg(custavg) from (SELECT tblservice.customerid, Avg(tblservice.total) AS custavg FROM tblservice GROUP BY tblservice.customerid);
票数 1
EN

Stack Overflow用户

发布于 2012-06-01 07:17:12

执行子查询以获得每个客户的平均值:

代码语言:javascript
复制
SELECT
    AVG(customer_ltv)
FROM
    (SELECT
        customerID,
        AVG(Total) AS customer_ltv
    FROM
        tblservice
    GROUP BY
        customerID) avgs

如果需要按时进行筛选,则将WHERE子句添加到内部查询中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10841949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档