2013-04-16 31 views
0

今天我們有一個稱爲客戶的維度。立方體計算特定時期的客戶數量

我們有幾個SCD2屬性,所以有DateFrom和DateTo列來指示哪些perid記錄是活動的。創建客戶時我們還有一個CreationDate,當客戶被移除時我們也有一個RemoveDate。

現在我想創建一個在excel中可以顯示特定時間段內唯一客戶數量的多維數據集。舉例來說,我每個月都想顯示未被移除的客戶數量。在Excel中,它可能看起來像這樣

2013-01  2013-02  2013-03 
100   120   80 

2013-02我們一共有120個客戶。這並不意味着我們從2013 - 01年度獲得了20位新客戶,因爲我們可能失去了一些客戶。也許我們有30個新的,輸了10個。

這個怎麼辦? 我讀過的所有示例都顯示了銷售事實表的連接。但我想知道客戶的數量。我認爲我設法解決了一些問題,方法是使用非事實型事實表並使用count的度量(獨特的CustomerId)。但是,這隻能提供分割客戶總數的可能性。我想看看每個月的客戶數量。所以我相信我需要以某種方式連接日期維度。但是我無法將它與creationdate或removedate連接起來,因爲它只會在特定的一天計算在內。

謝謝!

回答

0

看起來很簡單...創建一個聚合事實表,它只記錄給定客戶的「第一」交易,無論您想要追蹤哪個時間段。我假設你的銷售事實表中有銷售日期?

一位顧客SCD的日期應該不會有什麼做的發售日期......

AGG_CUSTOMER_SHOP 
------------------------ 
MONTH_NUMBER INTEGER 
CUSTOMER_ID INTEGER 

你的ETL過程,通過執行類似

SELECT distinct month_number, customer_id 
    FROM fact_sales s 
    JOIN dim_date d on (s.date_id = d.date_id) 
    JOIN dim_customer c on (c.customer_id = s.customer_id) 

你的約會變得暗淡建立此你的月份號碼(201301)或其他什麼,你只需將它存儲在你的聚合表上。