【发布时间】:2016-12-16 13:36:55
【问题描述】:
我有一个视图,可以将订单连接到用作事实表的网络跟踪数据。我有很多空值,因为订单需要一段时间才能获取网络跟踪信息。如您所见,我的总行数为 86432。但是我的度量值显示为 52、753(构建度量值组时的简单行数)。 (使用完全相同的视图)。
我相信由于数据中的空值,我的计数会出错。如何让 SSAS 正确计算我的空值? (我只能对源数据库做些什么,因为我无权更改源系统的核心结构)。
我理解您所说的对一个字段与所有字段进行计数的意思,但是正如您在 SSAS 中创建一个新度量值所看到的那样,您可以选择对源表的行数进行计数。这是我所期望的行为,我期望与我的图像中显示的表上的 SELECT * 相同的计数......
【问题讨论】:
-
使用更合适的字段怎么样?如果
Order字段包含空值,则它不适合计算您想要计算的任何内容(也许是客户?)。请改用表的主键。 -
@PanagiotisKanavos 这就是它应该做的事情吗?它应该只是计算行数?见上图...除非我的理解是错误的...
-
不,不应该。 NULL 不是项目或订单。他们什么都不是。您不会期望
NULL影响 SQL 计数,为什么您期望它在 SSAS 中表现不同?无论如何,您为什么要使用此字段来计算不同实体的出现次数? -
通常人们计算整行,假设整行不为空,使用 COUNT(*) 与可能有 NULL 的 COUNT(someField),因此不等于 ROWCOUNT。或者你可以 COUNT(COALESCE(YourField,1)) 或类似的东西来处理 NULL
-
DimAd 是否有空或零 AdKey 行?我怀疑这是你的问题。当您处理您的多维数据集时,您是否必须调整错误配置设置以使其不会出错?我想知道在处理过程中是否丢弃了空维度键行。
标签: sql-server sql-server-2012 ssas ssas-2012