有没有一种方法可以计算SSAS中的MODE?我发现微软提供了Median,AVG,Max和Min的功能,但没有提供Mode的功能。我是否需要在.net中编写用户定义的函数以实现此目的,还是有更简单的选择?在Sql Server Analysis Services中计算MODE(一组中最常用的数字)
回答
我可以看到两个可能的选择。创建一个.Net存储过程是一个,但是在调用这些过程时会有一些开销,所以你不想在一个单元上运行一个Mode函数。
另一种选择是,如果没有太多的需要跨操作的不同值,则是创建一个具有基于数字的属性的维度。然后,您可以创建一个行计数度量,并通过使用数值在维度上执行TOPCOUNT(...,1)来获取模式。
这应做到:
create table #temp (value int)
insert into #temp (value) values (1)
insert into #temp (value) values (1)
insert into #temp (value) values (1)
insert into #temp (value) values (2)
insert into #temp (value) values (2)
insert into #temp (value) values (3)
insert into #temp (value) values (3)
insert into #temp (value) values (3)
insert into #temp (value) values (3)
insert into #temp (value) values (3)
insert into #temp (value) values (3)
insert into #temp (value) values (4)
select value from (select top 1 count(*) as counts, value from #temp group by value order by count(*) desc) as myTemp
如何创建您对模式感兴趣的数字的事实维度(Degenerate dimension),然后使用该维度对行数进行计数,计算1的最大计数?
或者您是否可以使用可用于可能场景的更一般的MDX计算?
我是经过了一个更一般的计算。我想出了这个,但它太慢了,无法使用。事实证明,在我的特定情况下,MODE的值超过了MEDIAN的50%,所以我继续使用MEDIAN,因为它是内置的。 MEDIAN([Billable Item]。[Billable Item ] [All] .Children, [Measures]。[Contractual Adjustment - Billable Item]) 到目前为止,我一直无法让生产使用速度够快,但对于非常小的数据集却只需要几分钟。我想我需要使用EXISTS或其他类型的过滤器来加速它。 – 2010-05-04 18:20:59
@Shane - 如果这是一个计算成员,设置非空行为是值得的:http://msdn.microsoft.com/en-us/library/ms166568.aspx它应该使它更快,如果它没有设置,但要小心,因为设置错误会产生错误的结果。 – Meff 2010-05-04 20:06:05
- 1. Sql Server Analysis Services 2008总计
- 2. SQL Server Analysis Services
- 3. SQL Server Analysis Services - Datamining Error 5
- 4. 在Sql Server Reporting Services中计算每个组的平均行数
- 5. 在Sybase Advantage数据库服务器中使用SQL Server Analysis Services
- 6. SQL Server Analysis Services中ISO 8601日期中的错误周数
- 7. 什么是计算Sql Server Analysis Services中消耗运行总数的最有效方法?
- 8. 时间维度在SQL Server Analysis Services中不起作用
- 9. SQL Server Analysis Services和Team Foundation服务器
- 10. 通过node.js访问SQL Server Analysis Services
- 11. 一个在SQL Server Analysis Services的许多关系
- 12. 总计和空值超过平均值SQL Server 2008 Analysis Services
- 13. 如何在Microsoft SQL Server Analysis Services中使用MySQL作为数据源?
- 14. 如何在Sql Server Analysis Services中使用缓慢变化的维度
- 15. 一个开发人员指南到SQL Server Analysis Services和OLAP
- 16. 从SPSS,从SQL Server Analysis Services导入数据
- 17. 使用MS SQL Server Analysis Services在分层数据上创建多维数据集
- 18. 使用PowerShell部署SQL Server Analysis Services项目 -
- 19. SQL Server Analysis Services 2005在服务器上找不到该实例
- 20. SQL Server在计算中使用字符串的小数部分
- 21. 如何在SQL Server Reporting Services中的RunningValue函数中指定组?
- 22. Sql Server 2008中的计算字段
- 23. 更改安装期间设置的SQL Server Analysis Services权限
- 24. 如何将SQL Server Analysis Services项目部署到不同的域?
- 25. 充分利用微软的Analysis Services
- 26. 在SQL Server中更新数学计算
- 27. 在sql server表中计算列总数
- 28. SQL Server中的计算
- 29. 使用Subsonic在SQL Server中计算列
- 30. SQL Server 2014 Analysis Services部署权限错误
这被标记为MDX问题,而不是SQL问题。在SQL Server分析服务中不使用TSQL,所以这不能解决我的问题。模式很容易在Sql Server或者SSIS中计算,但我需要在SSAS中根据我的需要来完成。 – 2010-01-14 18:17:54