不同 ID 上的 SSAS 聚合

Posted

技术标签:

【中文标题】不同 ID 上的 SSAS 聚合【英文标题】:SSAS Aggregation on Distinct ID 【发布时间】:2014-01-09 22:05:36 【问题描述】:

我希望将默认聚合从 SUM 更改为基于不同 ID 值的 SUM。 这是当前的行为

身份证金额 1 美元 10 1 美元 10 2 20 美元 3 美元 30 3 美元 30 总和 = 90 美元

默认情况下,我得到 90 美元。我希望对不同的 id 进行求和并获得 60 美元的价值。我将如何修改默认聚合行为以实现此结果?

【问题讨论】:

【参考方案1】:

将您的数据设计为多对多关系:创建一个表/视图,每个 ID 有一条记录,并根据问题中显示的数据(主要事实表)创建一个金额列,一个表/视图有一个记录您的问题中显示的每条数据记录,大概有另一列,否则将数据显示在您的问题中没有任何意义)。这将是 m2m 维度表。然后,创建一个具有 m2m 维度表的 id 和您的 ID 列的桥表/视图。

然后创建以下 AS 对象:来自主事实表的度量值组,同一表的列 ID 上的维度(如果没有其他列使维度表有意义,在这种情况下,您最好拥有以 ID 作为主键的单独维度表)。从 m2m 维度表中创建一个维度,并从桥接表中创建一个仅包含不可见度量“计数”的度量值组。最后,在Cube Designer的“Dimension Usage”选项卡上,通过bridge measure group设置m2m维度与主measure group的关系为多对多。

有关多对多关系的教程,请参阅 http://technet.microsoft.com/en-us/library/ms170463.aspx。

【讨论】:

不幸的是,我对表结构可以做的事情相当有限。我通过让每个聚合找到最大数量然后使用计算来求和来解决我的问题。考虑到我的表的大小,它对性能的影响很小。 @user3179523 无需更改表结构,您可以只创建具有此结构的视图,或者只是在数据源视图中命名查询。 啊,没想到。稍后我会尝试一下,看看它有多灵活,谢谢。

以上是关于不同 ID 上的 SSAS 聚合的主要内容,如果未能解决你的问题,请参考以下文章

不同键上的 Elasticsearch 聚合

SSAS - 维度浏览器显示不同的属性

SSAS 多维名称

SSAS 聚合设计提升CUBE的查询性能(转载)

SSAS多维中不同粒度的多对多货币转换

MongoDb 将 $group '_id' 空值聚合为不同的