尝试计算 MDX 中的四分位数

2024-01-16

我的数据如下所示:

ID                                   |PersonID  |CompanyID  |DateID  |Throughput |AmountType
33F467AC-F35B-4F24-A05B-FC35CF005981 |7         |53         |200802  |3          |0
04EE0FF0-511D-48F5-AA58-7600B3A69695 |18        |4          |201309  |5          |0
AB058AA5-6228-4E7C-9469-55827A5A34C3 |25        |69         |201108  |266        |0

大约有一百万行。列名 *ID 引用其他表,因此它们可以用作维度。

我有一个 OLAP 多维数据集,其中吞吐量列作为度量,其余作为维度。

我想计算吞吐量度量的第一和第三四分位数。

我遵循了这个指南:https://electricvoid.wordpress.com/2011/06/24/ssas-quartile/ https://electrovoid.wordpress.com/2011/06/24/ssas-quartile/连同这篇文章:在 Analysis Services 中计算四分位数 https://stackoverflow.com/questions/31532268/calculating-quartiles-in-analysis-services

我尝试使用此 MDX 查询:

WITH
SET selection as ([Dates].[Year].&[2014],[Dates].[Month].&[1])  

SET [NonEmptyIds] AS
 NonEmpty(
      [ThroughputID].[ID].[id]
   *[ThroughputID].[ID].[Id].ALLMEMBERS
  ,
  {[Measures].[Throughput]} * [selection]
 )
 SET [ThroughputData] AS 
ORDER
    (    
        [NonEmptyIds],  
        [Measures].[Throughput], 
        BASC
     )
MEMBER [Measures].[RowCount] AS COUNT (ThroughputData)
MEMBER [Measures].[i25] AS ( .25 *  ( [RowCount] - 1 ) ) + 1
MEMBER [Measures].[i25Lo] AS FIX([i25])   - 1
MEMBER [Measures].[i25Rem] AS ([i25] - FIX([i25]))
MEMBER [Measures].[n25Lo] AS (ThroughputData.Item([i25Lo]), [Throughput])
MEMBER [Measures].[n25Hi] AS (ThroughputData.Item([i25Lo] + 1), [Throughput])
MEMBER [Measures].[Quartile1] AS [n25Lo] + ( [i25Rem] * ( [n25Hi] - [Throughput] ))

SELECT
selection ON 0,
[Measures].[Quartile1]
ON 1
FROM (SELECT [Dates].[Y-H-Q-M].MEMBERS ON 0 FROM [Throughput])

但我得到:“Query (6, 7) ID 层次结构在 Crossjoin 函数中多次使用。”

我对 OLAP 和 MDX 还很陌生。任何想法出了什么问题以及我应该如何正确计算四分位数?

我在某处读到,在计算四分位数时,我需要 ID 维度才能获得包含所有值而不是聚合值的集合...


罪魁祸首是以下代码:

SET [NonEmptyIds] AS
 NonEmpty(
      [ThroughputID].[ID].[id]
   *[ThroughputID].[ID].[Id].ALLMEMBERS
  ,
  {[Measures].[Throughput]} * [selection]
 )

您不能在交叉连接中多次使用同一层次结构。这里你已经使用了[ThroughputID].[ID]两次。相反,请尝试以下操作:

SET [NonEmptyIds] AS
 NonEmpty(
      [ThroughputID].[ID].[Id].ALLMEMBERS
  ,
  {[Measures].[Throughput]} * [selection]
 )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试计算 MDX 中的四分位数 的相关文章

  • 为什么 CROSS JOIN 条件在“ON”子句中不起作用,而仅在 WHERE 子句中起作用?

    我想知道为什么条件交叉联接必须具有 WHERE 子句中指定的条件 以及为什么它在 ON 子句中不起作用 请参阅编译示例的链接 http rextester com IKY8693 业务上下文 我需要生成开始日期和结束日期之间的日期列表 以便
  • 如何生成组合矩阵

    我有 5 个项目 每个项目的值为 1 或 1 我想生成一个由可能组合的行组成的矩阵 项目的顺序并不重要 组合的顺序也不重要 我知道我可以机械地完成此操作 但我认为必须有人知道生成此矩阵的快捷方式 如果这与其他问题类似 我深表歉意 但我找到的
  • 总结自连接索引,同时避免 R data.table 中的笛卡尔积

    有 2 列data table 我想通过对第 2 列中的共享元素数量求和来总结第 1 列中的成对关系 换句话说 X 值的每个成对组合有多少个共享 Y 元素 例如 我可以通过两步过程来完成此操作 首先进行笛卡尔交叉连接 然后总结如下 d da
  • BigQuery 中交叉联接后的行聚合

    假设您在 BigQuery 中有下表 A user1 0 0 user2 0 3 user3 4 0 交叉连接后 您有 dist user1 user2 0 0 0 3 comma is just showing user val sepe
  • [All] 既是级别又是成员

    查看我们的 ClientId 层次结构图 我发现大多数层次结构中都会重复出现一种模式 如果我扩展All那么该层次结构的每个成员都被包括在内 是All一个级别和一个会员 All 是属性 IsAggregatable 设置为 TRUE 的所有成
  • mysql交叉连接,但没有重复对?

    假设我的表中有以下行 表行 id 63 64 65 66 67 68 如果我运行以下查询 我会得到 30 行 SELECT r1 id r2 id FROM rows AS r1 CROSS JOIN rows AS r2 WHERE r1
  • SQL INNER JOIN 语法

    下面的两位 SQL 得到相同的结果 SELECT c name o product FROM customer c order o WHERE c id o cust id AND o value 150 SELECT c name o p
  • SSAS - 显示行上的度量

    总的来说 我对 MDX 和 SSAS 很陌生 我正在尝试以漂亮的表格形式获取所有措施和日期 所以像这样 Measure Date Value Meas1 D1 3 Meas1 D2 8 Meas1 D3 9 Meas2 D1 7 Meas2
  • MDX - NON EMPTY 函数更快?

    我当时的假设是NON EMPTY必须尽可能避免使用该子句 因此 当我意外地发现它实际上使查询速度更快时 我感到震惊 示例如下 select Measures Count Of Requests on 0 Client Client Numb
  • 在单个 MDX 查询中多次使用 IIF() 函数时无法正常工作

    我需要使用单个 MDX 查询根据两个条件获取聚合值 Am having below data 我在下面的查询中使用 IIF 函数创建了两个计算函数 WITH MEMBER Measures Expression1 AS IIF EMPLOY
  • 强制 mdx 查询返回列名

    从 powerpivot 连接到 SSAS 时 我遇到以下问题 如果由于某种原因 mdx 查询没有返回行 也不会返回列名 并且 powerpivot 会给出错误 在 SSMS 中执行此类查询时 如果 mdx 什么也不返回 则得到 0 行 如
  • 尝试计算 MDX 中的四分位数

    我的数据如下所示 ID PersonID CompanyID DateID Throughput AmountType 33F467AC F35B 4F24 A05B FC35CF005981 7 53 200802 3 0 04EE0FF
  • MDX 查询返回记录数

    以下是我的 MDX 查询 SELECT NON EMPTY Measures Fact Sample Count ON COLUMNS NON EMPTY Fact Sample Sample Reference No Sample Ref
  • 在 SSAS 中使用参数测试 mdx 查询

    我想在 SSAS 中测试 MDX 查询 到目前为止我已经执行了以下步骤 我打开 SQL Profiler 并运行 SSRS 报告 我找到了我需要的查询 带有参数值 并选择了它SQL 探查器 https i stack imgur com 8
  • MDX SSAS - 最大测量日期

    只需要在多维数据集中的所有测量中获取最大日期即可 例如 DateID is a Dimention Measure First Measure Second Measure 如何获取列表MAX DateID 来自我的立方体中的所有措施 以下
  • MDX 按维度属性计算的成员过滤器

    我想创建一个计算成员并按维度过滤它 这是工作示例 Policy Policy Status Void Policy Tran Type Renewal Measures FK Policy Distinct Count 但如果我想像这样过滤
  • 将列列表作为向量传递给 data.table 的 CJ

    我有以下代码 main cols lt c num let dt lt data table num 1 5 let letters 1 5 dt new dt lt dt CJ num num let let unique TRUE on
  • 如何删除空值?

    如何删除底部计数中的空值 即 我只想查看实际销售单位的产品 我尝试过非空和非空但没有成功 with member Measures Amount Sold as Measures Internet Sales Amount format s
  • 如何在MDX查询中的行上显示多个维度?

    我有一个叫做Sales KG在我的立方体和二维中 Groups and Formats 有没有办法在单行中显示最后一个 我有这样的疑问 select Measures Sales KG on Columns Formats Format T
  • 散点图的连续分位数

    我有一个数据集 我为其绘制了回归图 使用ggplot2 s stat smooth ggplot data mydf aes x time y pdm geom point stat smooth col red 我还想使用相同的方法获得分

随机推荐