在SSAS中使用百分位数作为度量

在SSAS中使用百分位数作为度量,ssas,Ssas,如何在SSAS多维数据集中使用百分位数(比如说99%百分位数)作为度量?我希望能够使用许多不同的维度和过滤器对其进行报告,因此sql中的预计算不是一个选项。如果您想计算维度上的百分位数,那么您可以不用在sql中预计算任何内容。这可以使用和MDX函数的组合来完成 例如,假设您希望通过[Measures].[Avg Daily Census](我在医疗保健部门工作)度量来查找[Date].[Calendar Month]维度属性的第25个百分位数。您可以使用以下查询来执行此操作 WITH ME

如何在SSAS多维数据集中使用百分位数(比如说99%百分位数)作为度量?我希望能够使用许多不同的维度和过滤器对其进行报告,因此sql中的预计算不是一个选项。

如果您想计算维度上的百分位数,那么您可以不用在sql中预计算任何内容。这可以使用和MDX函数的组合来完成

例如,假设您希望通过[Measures].[Avg Daily Census](我在医疗保健部门工作)度量来查找[Date].[Calendar Month]维度属性的第25个百分位数。您可以使用以下查询来执行此操作

WITH
   MEMBER [Measures].[25th Percentile] AS
      (
         Tail(
            TopPercent(
               [Date].[Calendar Month].[Calendar Month],
               100 - 25,
               [Measures].[Avg Daily Census]
            )
         ).Item(0),
         [Measures].[Avg Daily Census]
      )
SELECT 
   [Measures].[25th Percentile] ON 0
FROM [Census]
此查询使用TopPercent查找[Calendar Month]维度属性中前75%的值,查找该集合中值最低的成员,然后计算该成员的度量值

现在,如果要生成整个百分位值集,可以使用序列实用程序维度(仅包含数字的维度),也可以创建包含0-99的自定义百分位维度。下面的查询将生成所有百分比的度量值

WITH
   MEMBER [Measures].[Percentile] AS
      (
         Tail(
            TopPercent(
               [Date].[Calendar Month].[Calendar Month],
               100 - [Sequence].[Ones].CurrentMember.MemberValue,
               [Measures].[Avg Daily Census]
            )
         ).Item(0),
         [Measures].[Avg Daily Census]
      )
SELECT 
   [Measures].[Percentile] ON 0,
   [Sequence].[Ones].&[0] : [Sequence].[Ones].&[99] ON 1
FROM [Census]
但是,如果您试图以事实表的粒度计算百分位数,那么我相信您需要预先计算每个事实行的百分位数值,或者添加一个维度并使用上述方法