使用 MDX 以具有与“GROUP BY”相同的功能,以仅显示一次项目,即最大值

Posted

技术标签:

【中文标题】使用 MDX 以具有与“GROUP BY”相同的功能,以仅显示一次项目,即最大值【英文标题】:Use MDX in order to have the same functionality of "GROUP BY" to show only show an item once, at it's max value 【发布时间】:2019-12-13 04:16:51 【问题描述】:

我有一个具有价格和数量度量的立方体。我有两个维度,产品和供应商。 Product>Name>Name 是产品的名称字符串,Supplier>Name>Name 是供应商的名称字符串。

我正在尝试查询多维数据集以返回产品的最高定价,但我的 with 语句似乎不起作用。

我正在尝试创建一个名为“Max Price”的新参考作为度量,它只是围绕度量价格度量的 MAX 函数。

WITH MEMBER [Measures].[Max Value] AS MAX([Measures].[Price]) 

但是,当我编写其余部分并运行它时,我的代码只显示产品名称的所有价格的总和:

SELECT NON EMPTY 
    [Measures].[Max Value] ON 0,
NON EMPTY  
    ([Tb Product].[Name].[Name] )   ON ROWS 
FROM [DS715]

我想要的只是一行,每个产品的单一最高价格。

显示的内容是包含所有产品价格总和的单行。

数据示例:

产品名称:汽车、飞机、车轮

产品价格:汽车(100 美元、200 美元、300 美元),飞机(1000 美元、2000 美元、3000 美元), ***(10 美元、20 美元、30 美元)

输出:

显示的是:汽车:600 美元飞机:6000 美元车轮:60 美元

我预计:汽车:300 美元飞机:3000 美元车轮:30 美元

【问题讨论】:

【参考方案1】:

在您的项目中定义一个新度量并选择使用量作为最大值。这将在您的查询上下文中返回最大销售量。

在下面的评论中添加屏幕

现在设置用法

【讨论】:

对不起,这可能是一个愚蠢的问题,但是你如何定义一个新的度量并“选择使用为最大值”? 所以打开您的 SSAS 项目,在解决方案资源管理器中打开您的多维数据集,现在在左上角您将看到度量,右键单击并选择新度量。您将看到使用中选择的总和,为价格列选择最大值。稍后添加图片 检查屏幕 我无权更改以这种方式添加度量。我确实尝试过创建一个度量计算,但我做了同样的事情,它给了我多行:“MAX([Measure].[Price])。你知道这样做产生的代码是什么吗?如果我能明白为什么 MAX() 不起作用以及我缺少什么,我可以用这种方式修复它。

以上是关于使用 MDX 以具有与“GROUP BY”相同的功能,以仅显示一次项目,即最大值的主要内容,如果未能解决你的问题,请参考以下文章

如何以最佳方式按两列进行 GROUP BY 和计数?

MDX 查询以对具有特定日期范围的日期维度进行分组

无法将具有相同 item_hsn 的字段分组并使用 group by sql 语句对其数量求和

如何使用 group by 子句选择随机行?

SQL查询以使用group by和aggegate函数创建具有现有数据操作和操作的新表[关闭]

JPA Group by 具有多个字段