MDX - TopCount 加“其他”或“其余”

2024-01-27

我创建了一个 MDX 查询,用于计算前 10 个邮政编码(根据我的患者住院测量),如下所示:

WITH
MEMBER [Discharge Date].[Y-M-D].[ Aggregation] AS 'AGGREGATE( EXISTING { [Current Month] } )', SOLVE_ORDER = 0

SELECT
NON EMPTY { [Measures].[Patient Stays] }
ON COLUMNS,

TOPCOUNT({ ORDER( HIERARCHIZE( { [Patient].[ByZipcode].[All].CHILDREN } ), ( [Measures].[Patient Stays] ), BDESC ) }, 10)
ON ROWS

FROM [Patient Stay]

WHERE ( [Discharge Date].[Y-M-D].[ Aggregation], [Facility].[ByAffiliation].CURRENTMEMBER, [Facility].[ByRegion].CURRENTMEMBER )

此查询用于填充 PerformancePoint 100% 堆积条形图。客户要求,由于这是一个基于 !00% 的图表,我们将其余的邮政编码集中到“其他”字段中,这样应该有 11 个值:前 10 个值各有一个,第十一个值代表前 10 个值。是其余邮政编码的总和。

我是 MDX 的新手,但这听起来并不是不可能的。有人有什么想法或建议吗?


我会尽力使用未经测试的代码,所以这里是:

WITH
MEMBER [Discharge Date].[Y-M-D].[ Aggregation] AS 'AGGREGATE( EXISTING { [Current Month] } )', SOLVE_ORDER = 0

SET [Top10ZipCodes] AS 
    (TOPCOUNT({ ORDER( HIERARCHIZE( { [Patient].[ByZipcode].[All].CHILDREN } ), ( [Measures].[Patient Stays] ), BDESC ) }, 10))

MEMBER [Patient].[ByZipCode].[OtherZipCodes] AS 
    (AGGREGATE({EXCEPT([Patient].[ByZipCode].Members, [Patient].[ByZipCode].[Top10ZipCodes])}))

SELECT
NON EMPTY { [Measures].[Patient Stays] }
ON COLUMNS,

{[Top10ZipCodes], [Patient].[ByZipCode].[OtherZipCodes]}
ON ROWS

FROM [Patient Stay]

WHERE ( [Discharge Date].[Y-M-D].[ Aggregation], [Facility].[ByAffiliation].CURRENTMEMBER, [Facility].[ByRegion].CURRENTMEMBER )

其作用是创建一组前 10 个邮政编码,然后聚合(与总和不同!!!)所有邮政编码(前 10 个除外)。

另外,如果这是一个通用集(前 10 个邮政编码),您可能需要在多维数据集上创建一个集,您可以在其中重复使用它,而不必更改您拥有的每个 MDX 查询。

Cheers,
Eric

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MDX - TopCount 加“其他”或“其余” 的相关文章

  • 如何显示多个本地通知?

    我有一个消息应用程序 我正在使用VoIP notifications向用户发送确认 我每次都会发出本地通知PushKit delegate叫做 当前的情况是先前的通知被删除并被新的通知取代 有没有办法管理本地通知 以便用户可以在其设备中看到

随机推荐