2017-09-13 50 views
0

我在度量的聚合方面遇到問題。 真實世界的情景是,客戶想要分析在該周進入商店的客戶數量的比例。 我們知道每週輸入的客戶數量以及購買類型(昂貴,適中,便宜)的購買次數。 由於存在不同的購買類型,因此會爲該位置和該周創建多行。因此同樣的措施(NumberOfWalkInCustomers)被複制。取決於所包含的尺寸的度量的不同度量聚合

These are the records. NumberOfWalkInCustomers are the totals per the Location and the WeekStartDate only. The duplicated rows are the result of the purchase Types. Without any dimensions in place, the sum looks like 850 but I would like to see the total as 650 because that's the total of Customers entered to those two locations in those two weeks.

我想看到什麼是當我聚集中的位置和日期的尺寸,這項措施將得到總結。如何在其他維度到位時避免總和彙總?

如果我們在報告中包含日期,地點和購買類型維度,那麼它看起來沒問題 但是,當我刪除購買類型維度時,我想讓Location1顯示仍100,因爲購買類型不會影響客戶進入一個位置。但是,當我刪除日期維度時,我希望看到位置1有250個(第1周100個,第2周150個)。該網站允許我只添加兩個鏈接。抱歉。

+0

你能否展示希望的結果?我不確定你想要什麼。您可以將NumberOfWalkInCustomers度量值組的IgnoreUnrelatedDimensions設置爲false,以避免重複。 –

+0

謝謝Danylo。我儘可能地更新了描述。購買類型維度並不總是無關的。它不會影響客戶的步行數量,但會影響所購產品的數量。我只需要在位置級別顯示最大值,但是當我彙總到城市級別時,例如,我希望將其彙總。 – user3397375

+0

它爲Location1返回300,對嗎?你只需要100個,對吧?當你把一天的水平而不是一週時,你應該得到什麼?你能創建一個僞公式嗎?例如:sum(week,sum(location,max(type,visits))) –

回答

0

有兩種方法:慢和快。

1(純MDX):

With 
[Measures].[SumWeekStartDateSumLocationMaxPurchaseType] as 
Sum(
     existing [Date].[Week Start Date].[Week Start Date].Members, 
     [Measures].[2] 
) 


[Measures].[SumLocationMaxPurchaseType] as 
Sum(
     existing [Store Location].[Location].[Location].Members, 
     [Measures].[MaxPurchaseType] 
) 

[Measures].[MaxPurchaseType] as 
Max(
     existing [Purchase Type].[Purchase Type].[Purchase Type].Members, 
     [Measures].[Number Of Walk In Customers] 
) 

select 
[Measures].[SumWeekStartDateSumLocationMaxPurchaseType] on 0 
from [YourCube] 

然而,對於大尺寸你可能會發現它真的很慢。

2(MDX + DWH的A位):添加了新的措施,以你的立方體結構如下:

select 
     WeekStartDate, 
     Location, 
     MaxWalkIn = max(WalkIn) 
from FactTableWalkIn 
group by WeekStartDate, Location 

添加MaxWalkIn衡量和聚集+計算度量:

IIF(
     [Purchase Type].[Purchase Type].CurrentMember is [Purchase Type].[Purchase Type].DefaultMember, 
     [Measures].[MaxWalkIn], 
     [Measures].[Number Of Walk In Customers] 
) 
+0

嗨Danylo,我嘗試了第一種方法。只有使用下面的計算方法才能解決問題。 [措施]。[MaxPurchaseType]作爲 最大( 現有[採購類型] [採購類型] [採購類型] .Members, [措施]。[號碼走在客戶] ) 我目前有兩個問題給你。 您可以在使用上面的MDX表達式時解釋一下您的邏輯嗎? (現有購買類型...) 發生了什麼其他維度;類似於「購買類型」,沒有得到總結,但使用最大值?我們如何避免在所有其他方面的總和? – user3397375

+0

它不會避免聚合,它會分別爲每個採購類型獲取一個值,並從中獲取最大值。如果您需要每個記錄的最大值(不管使用什麼維度),您必須添加最大聚合的度量(請參閱我的第二個方法)。 –

+0

嗨Danylo,使用第一種方法,我得到不正確的結果與此。例如,如果我彙總到城市級別;對於不同的採購類型,客戶步行的總和看起來不同,原因是如果沒有該類型的採購,則將客戶步行計爲零。 (實際上,客戶號碼的走向應該歸結爲城市內的商店位置)您是否認爲我們可以以不同的角度來看待這種情況?如僅在位置維度級別爲「Store」並且日期維度級別爲「Week Start Date」時才爲Maximum? – user3397375