2012-09-21 50 views
1

比方說,我有一個憤怒的小鳥遊戲。保留追蹤

我想知道有多少玩家每月購買的「雄鷹」的武器出的買入神鷹武器在他們的LTV前幾個月在系統中的球員

我有日期每個客戶購買的所有商品。

我幾乎想什麼已經是一個二維矩陣 會告訴我什麼球員從 LTV_month_X搬到LTV_month_Y爲X < Y各自結合特定電流 月份的百分比是多少?

一個例子:

example_png (它沒有讓我把PIC在線,請按鏈接查看圖)

現在,我已經找到一種方式來獲得玩家人數 實際上從LTV_month_X to LTV_month_Y that LTV_month_Y起是他們當前的 月內的系統內使用SQL查詢和Excel Pivot表的活動。

我試圖找到的主要是如何獲得那些可能可以做這種轉變的人的基數。

一些定義: LTV_month_X = DATEDIFF(MONTH, first_eagle_month, specific_eagle_month)+1

最好,我想有解決方案ANSI-SQL,如果不是那麼MySQL或 MSSQL但沒有甲骨文的功能應該在所有使用。

由於我在尋找轉換兩步驟計劃的百分比也可以起作用,請首先找到潛在的人員,然後找到實際的人員,以便衡量從LTV_month_X到LTV_month_Y的保留期限。

最後一個問題:我需要爲它可以向下鑽取,找到誰在任何階段X移動到任何其他階段Y(> X)的客戶的實際標識。

+0

這可能屬於[超級用戶](http://superuser.com/) –

+0

這是m一個算法的問題,目前沒有針對任何特定的工具。 – TR7

回答

0

兩個維度您正在尋找的是

  1. 實際購買一個月
  2. 相對購買一個月

SELECT 
    player_id, 
    TRUNCATE(first_purchase,'MM') AS first_month , 
    TRUNCATE(current_purchase_date ,'MM') AS purchase_month, 
    months_between(current_purchase _date, first_purchase_date)+1 AS relative_month, 
    SUM(purchase_amount) AS total_purchase, 
    COUNT(DISTINCT player_id) AS player_count 
FROM ...

現在,您可以透視購買一個月的相對月,總

+0

這幾乎是我們在最後做的 – TR7

1

此處使用術語LTV並不清楚。我假設你的意思是用戶的一生。

如果我理解這個問題,您是根據每個實體有一個或多個事件的實體列表,根據最後一個事件的月份和一個月份對實體進行分組(如計數)在上次活動之前。

在mysql中,你可以使用一個變量來做到這一點。我不打算擴大整個概念,但基本上,當在SELECT語句中編寫@var:= column時,那麼該變量會被分配該列的值,您可以使用它來比較連續列之間的值,例如 至少(@ var = column,@ same:= @ same + 1,@ same:= 0),@ var:= column)

使用LEAST是確保執行順序的一個技巧。