如何通过 SSAS 在数据透视表计数中包含 NULL?
How can I include NULLs in a PivotTable Count over SSAS?
我有一个视图,将订单加入到网络跟踪数据中,该数据被用作事实 table。我有很多空值,因为订单需要一段时间才能获取网络跟踪信息。如您所见,我的总行数为 86432。但是我的度量值显示为 52、753(构建度量值组时的简单行数)。 (正在使用完全相同的视图)。
我相信我的计数会因为数据中的空值而出错。如何让 SSAS 正确计算我的空值? (我只能对源数据库做些什么,因为我无权更改源系统的核心结构)。
我理解您所说的关于计算一个字段与所有字段的关系,但是正如您在 SSAS 中创建新度量所看到的那样,您可以选择源的行数 table。这是我所期望的行为,我希望与 SELECT * 在 table 上的计数相同,如我的图片所示...
为了获得真正的行数,您不需要计算列数,而是使用 *.
COUNT(*)
将计算所有行,无论 NULL
COUNT(Column)
仅计算 NON-NULL
个值
测试示例
declare @table table (i int)
insert into @table (i) values
(1),(NULL),(NULL),(NULL)
select count(*) from @table --returns 4
select count(i) from @table --returns 1
我相信 DimAd 没有空或零 AdKey 行。而且我相信在处理过程中,您必须更改错误配置以使其丢弃或忽略外键为空的任何事实 table 行。
我的首要建议是将您的事实 table 外键更改为不为空。您将需要在每个维度中创建一个 -1 键,然后在事实 table 中使用它,而不是如 here.
所述的 null
如果这不可行,则将空或零 AdKey 行添加到事实 table 外键可以为空的任何维度。 SSAS 应该将 Bulls 转换为零,因此两者都应该起作用。然后在处理过程中不会删除这些行,因为它们连接良好。而且您不必在处理过程中更改错误配置。
如果这不可行或无法接受table,那么您可以在所有可以为空的维度上启用未知成员。然后在 Dimension Usage 选项卡中将每个关系设置为回退到 Unknown 成员。此过程描述为 here。
我有一个视图,将订单加入到网络跟踪数据中,该数据被用作事实 table。我有很多空值,因为订单需要一段时间才能获取网络跟踪信息。如您所见,我的总行数为 86432。但是我的度量值显示为 52、753(构建度量值组时的简单行数)。 (正在使用完全相同的视图)。
我相信我的计数会因为数据中的空值而出错。如何让 SSAS 正确计算我的空值? (我只能对源数据库做些什么,因为我无权更改源系统的核心结构)。
我理解您所说的关于计算一个字段与所有字段的关系,但是正如您在 SSAS 中创建新度量所看到的那样,您可以选择源的行数 table。这是我所期望的行为,我希望与 SELECT * 在 table 上的计数相同,如我的图片所示...
为了获得真正的行数,您不需要计算列数,而是使用 *.
COUNT(*)
将计算所有行,无论 NULL
COUNT(Column)
仅计算 NON-NULL
个值
测试示例
declare @table table (i int)
insert into @table (i) values
(1),(NULL),(NULL),(NULL)
select count(*) from @table --returns 4
select count(i) from @table --returns 1
我相信 DimAd 没有空或零 AdKey 行。而且我相信在处理过程中,您必须更改错误配置以使其丢弃或忽略外键为空的任何事实 table 行。
我的首要建议是将您的事实 table 外键更改为不为空。您将需要在每个维度中创建一个 -1 键,然后在事实 table 中使用它,而不是如 here.
所述的 null如果这不可行,则将空或零 AdKey 行添加到事实 table 外键可以为空的任何维度。 SSAS 应该将 Bulls 转换为零,因此两者都应该起作用。然后在处理过程中不会删除这些行,因为它们连接良好。而且您不必在处理过程中更改错误配置。
如果这不可行或无法接受table,那么您可以在所有可以为空的维度上启用未知成员。然后在 Dimension Usage 选项卡中将每个关系设置为回退到 Unknown 成员。此过程描述为 here。