假设我有一个带有销售事实表和 3 个维度的多维数据集:时间(具有层次结构年-月-日)、地理(具有层次结构大陆-国家-地区)和产品,其中包含所售产品的一些特征,让我们以品牌为例例如。
我要做的是显示与所选度量相关的前 N 个品牌,在这种情况下,每个地区和每个月的平均销售额(已经在立方体中作为总销售额/售出的产品数量)。
为了清楚起见,我还需要显示国家和年份。
我到处寻找解决方案,我接近但不完全。我希望有人能帮我弄清楚。
所以我在下面的查询中使用了 generate 和 topcount,但问题是 topcount 计算的是整个数据集上的 N 个最畅销品牌,而不是针对每个地区和月份子组。然后将这个前 N 个应用到每个子组。
WITH SET [Top N Brands] AS
Generate([Geography].[Region].Children,
TopCount(Geography].[Region].CurrentMember * [Gpu Product].[Brand].[Brand].MEMBERS,
5, ([Measures].[averageSales])))
SELECT {[Measures].[averageSales]} ON COLUMNS,
NON EMPTY ( [Time].[Year].[Year],
[Time].[Month].[Month],
[Geography].[Country].[Country],
[Top N Brands]) ON ROWS
FROM [Cube]
所以我得到了这个,全球前 5 大品牌分布在各个地区,如果在那里销售:
但我应该为每个地区获得不同的前 5 名:
我错过了什么?