0

顧客の「平均生涯価値」を計算しようとしています。これは、すべてのお客様が当社を利用している期間と過去 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" は 1 対多の関係にあります。

これは私がこれまでに得たもので、顧客が購入するたびに平均支出を計算します. しかし、今は平均購入コストを計算する必要はありません

顧客ごとの合計支出の平均を計算しようとしています。したがって、最初に各顧客が行ったすべての購入を合計し、次に顧客の総数で割る必要があります。

上記のテーブル レイアウトでは、顧客 35 の平均生涯価値は ((5+5+10)/3) = 6.66 & 顧客 84 の平均ライフタイム バリューは ((10+10)/2) = 10.00 として計算されます。

次に、顧客ベース全体の平均ライフタイム バリューを見つけるには、各顧客の結果を次のように平均化する必要があります: ((6.66+10)/2) = 8.33

助けてください。これまでの 2 つのクエリを次に示します (1 つは全期間用、もう 1 つは過去 30 日間用)。

SELECT AVG(tblservice.Total) AS LifetimeValue FROM tblservice;

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

2 に答える 2

0

サブクエリを実行して、顧客ごとの平均を取得します。

SELECT
    AVG(customer_ltv)
FROM
    (SELECT
        customerID,
        AVG(Total) AS customer_ltv
    FROM
        tblservice
    GROUP BY
        customerID) avgs

時間でフィルタリングする必要がある場合はWHERE、内部クエリに句を追加します。

于 2012-06-01T07:17:12.537 に答える