MDX 处理负值
MDX Handling Negative Values
MDX 查询不能很好地处理负值吗?不是性能明智的,但你会得到奇怪的结果吗?
我有一个奇怪的结果。在我的事实 table 的第一列中,我有一些表示空键值的负值。
我没有创建 MDX 查询。我只是简单地拖放,软件正在创建 MDX。
编辑第 1 部分:
我使用的软件是Pentaho User Console。为了将其放入用户控制台,我必须使用架构 workbench.
设置架构和多维数据集
实际数据本身是准确的。
通常,当我向下钻取时,我会返回结果以显示向下钻取的用户控制台。具有负值;但是,我没有得到任何值。我 认为 MDX 以不同方式处理负值,但我是 MDX 的初学者,我只是基于我的 10-15 分钟 Google 搜索。
示例数据:
维度 ID 值:
business_id, carrier_id, at_id, as_id, device_id, created_date_id, created_for_id, cancel_date_id, completed_date_id
测量:activity_count
每列的示例值:
-1, 100, 29, 1, 300, 4269, 500, 1020, -1, 1134
Activity 计数 = 1
编辑第 2 部分:
我正在获取 MDX 日志。
为简单起见,我目前将
"business_id" 在行上,
我唯一的衡量标准是 "activity_count"
我正在尝试过滤 business_id = -1.
我对 MDX 没有经验,但我想 MDX 应该是这样的:
select [measures] on columns
from [cube_name]
where [business_filters].[business_id] = -1
现在我收到一条错误消息,因为它说
Mondrian Error:No function matches signature '<Level> = <Numeric Expression>'
但我 认为 这就是 MDX 的样子。大家怎么看?
编辑第 3 部分:
有趣的事实:如果我访问数据库 table,我的 business_id = -1 的度量值对于任何行都不为空。
如果我生成一些 MDX,则值为 Null。如果我将 -1 值替换为正值,则返回的度量是准确的。为什么是这样 。 . .
select
non empty {[Measures]}
on columns,
[business_filters].[business_id].[-1]
on rows
from
[activities_fact_01]
我知道哪里出了问题。
这与具有不在维度中的外键值有关。我去Pentaho下钻的时候,这些结果都没有回来,因为外键没有对应的主键值
我花了 1.25 天的时间来解决这个问题,但你可以打赌我再也不会犯同样的错误了:)
MDX 查询不能很好地处理负值吗?不是性能明智的,但你会得到奇怪的结果吗?
我有一个奇怪的结果。在我的事实 table 的第一列中,我有一些表示空键值的负值。
我没有创建 MDX 查询。我只是简单地拖放,软件正在创建 MDX。
编辑第 1 部分: 我使用的软件是Pentaho User Console。为了将其放入用户控制台,我必须使用架构 workbench.
设置架构和多维数据集实际数据本身是准确的。
通常,当我向下钻取时,我会返回结果以显示向下钻取的用户控制台。具有负值;但是,我没有得到任何值。我 认为 MDX 以不同方式处理负值,但我是 MDX 的初学者,我只是基于我的 10-15 分钟 Google 搜索。
示例数据: 维度 ID 值:
business_id, carrier_id, at_id, as_id, device_id, created_date_id, created_for_id, cancel_date_id, completed_date_id
测量:activity_count
每列的示例值:
-1, 100, 29, 1, 300, 4269, 500, 1020, -1, 1134
Activity 计数 = 1
编辑第 2 部分:
我正在获取 MDX 日志。
为简单起见,我目前将 "business_id" 在行上, 我唯一的衡量标准是 "activity_count" 我正在尝试过滤 business_id = -1.
我对 MDX 没有经验,但我想 MDX 应该是这样的:
select [measures] on columns
from [cube_name]
where [business_filters].[business_id] = -1
现在我收到一条错误消息,因为它说
Mondrian Error:No function matches signature '<Level> = <Numeric Expression>'
但我 认为 这就是 MDX 的样子。大家怎么看?
编辑第 3 部分:
有趣的事实:如果我访问数据库 table,我的 business_id = -1 的度量值对于任何行都不为空。
如果我生成一些 MDX,则值为 Null。如果我将 -1 值替换为正值,则返回的度量是准确的。为什么是这样 。 . .
select
non empty {[Measures]}
on columns,
[business_filters].[business_id].[-1]
on rows
from
[activities_fact_01]
我知道哪里出了问题。
这与具有不在维度中的外键值有关。我去Pentaho下钻的时候,这些结果都没有回来,因为外键没有对应的主键值
我花了 1.25 天的时间来解决这个问题,但你可以打赌我再也不会犯同样的错误了:)