Analysis Services 2005 OLAP 多维数据集:我可以在 nvarchar 列上创建不同计数度量吗?

StackOverflow https://stackoverflow.com/questions/320405

  •  11-07-2019
  •  | 
  •  

我正在尝试用单个度量创建一个立方体。该度量是“名称”列的不同计数。如果度量设置为“计数”类型,则多维数据集可以正常工作。但是,当我设置不同计数时,我收到此错误:

“OLAP 存储引擎中的错误:为不同计数记录指定的排序顺序不正确”

我在一些博客中读到,您只能对数字列进行不同的计数。我看不出这样做的充分理由,并且在官方文档中找不到该信息。然而,这可能是真的。无论如何,我真的被这个问题困扰了。我有什么选择?

有帮助吗?

解决方案

我的回答对你来说可能太晚了,但希望这可以帮助其他有同样问题的人。

  1. 转到解决方案资源管理器中的数据源视图
  2. 查找包含需要聚合的 GUID 列的表
  3. 右键单击所选表的标题并选择“创建命名计算”
  4. 给它起个名字
  5. 在表达式字段中输入以下内容: CAST(列名为 varchar(36))

该解决方案来自此链接http://www.bi-dw.info/sql-server-tips/distinct_count-measure-on-uniqueidentifier.htm

其他提示

谷歌,特别是 Eggheadcafe 提供了一个解决方案来拯救:

  • 从 SQL Server Management Studio 连接到 Analysis Services
  • 右键单击 Analysis Services 服务器名称(即最上面的 Analysis Services 链接)
  • 选择属性
  • 选中显示高级(全部)属性
  • 找到以下设置
  • OLAP \ Process \ CheckDistinctRecordSortOrder
  • 将此值设置为 0
  • 单击“确定”
  • 在 Visual Studio 或 BIDS 中打开 OLAP。
  • 处理立方体。

我会回答自己,也许这是对别人有帮助的。

简短的回答是YES。

我已创建具有相同结构的一些测试表,但只是一些测试行。立方体与该数据完美地工作。

所以,我想有原始表的一些腐败的数据,或者一些罕见的字符。

您是对的,你可以在一个nvarchar列做一个重复计数。

这可能是一些做奇怪的字符或与您的排序规则设置。

您可以尝试处理所述度量组的较小的子集,以尝试和隔离问题行。

它可以是由于核对设置。 SQL Server有通过其中的SSAS使用Windows排序规则Latin1_General默认SQL_Latin1_General_CP1_CI_AS。 如果您更改列的排序规则在其上做重复计数,我认为会解决这个问题。

我有这个问题试图使上的INT ID列中的重复计数。消费时代看着未知成员设置和尺寸使用设置后,我发现了另一个建议,即重复计数度不喜欢NULL值。添加WHERE COLUMN IS NOT NULL的分区查询此重复计数度量值组解决了我的问题。

这是建议: “OLAP存储引擎中的错误:对重复计数记录指定的排序顺序不正确

检查distinctcount列不包含空值。如果是的话,可以将这些从度量组经由分区定义的查询中省略(假设重复计数度量值是在它自己的度量组)“

德比在我的处境提供了正确的答案。就我而言,我试图来处理SSDT挖掘模型(VS 2012)和我得到的错误。

开始的错误之后我提出了一些修正,生成我用作我的数据源一个表的查询。我的猜测是,它引入了一些NULLS的地方,我没有之前我做了更正我的查询,因此源表(挖掘模型之前处理就好了)。我无法投票最多德比由于我的小白声誉。

我面临同样的问题,我发现有特殊字符/在我的数据,从处理所述立方体防止符号。最有可能的,立方体无法使用特殊字符的数据进行排序。

我是能够通过使用下面的函数中的数据变换为串hashbyte解决该问题:

SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', [column_name])), 3, 32)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top