reporting-services - MDX:如何为每个元组添加一个度量,然后如何获得这个度量
问题描述
我想从数据集中计算百分位数,我已经有公式可以做到这一点,但我一直在获取数据集。这是层次结构:
这是mdx代码:
with
MEMBER b AS filter(Descendants([Dim misc].[SpePats].CurrentMember,2), [Measures].[Is Anemie]=1).count / filter(Descendants([Dim misc].[SpePats].CurrentMember,2),true).count
SET c AS ([Dim misc].[SpePats].[Speciality Id].MEMBERS ,b)
SELECT {} ON 0
,{c} ON 1
FROM [BDD PBM]
我从一组“专业 ID”开始,对于每个专业,我得到一个名为 b 的比率(每个专业都包含患者,其中一些是贫血的,b 是贫血患者的比率)。我与会员进行专业的交叉连接,希望得到每个专业的一组费率。不幸的是,我明白了:
我想获得给定专业的费率,而不是每行上的“b”。而且,还有一些我不明白的事情,如果我计算成员 b,它会产生一个数字,我怎么能得到这个数字,有元组?在以下示例中,我通过表达式 '[Measure].Weight:' 获得数字,重量
这是一个百分位数计算的工作示例:
WITH
SET OrderedData AS ORDER(
NONEMPTY([Dim misc].[Patients].[IEP], [Measures].[Weight]),[Measures].[Weight], BASC)
MEMBER [Measures].[RowCount] AS COUNT (OrderedData)
MEMBER [Measures].[i0p02] AS ( .02* ( [RowCount] - 1 ) ) + 1
MEMBER [Measures].[i0p02Lo] AS FIX([i0p02]) - 1
MEMBER [Measures].[i0p02Rem] AS ([i0p02] - FIX([i0p02]))
MEMBER [Measures].[n0p02Lo] AS (OrderedData.Item([i0p02Lo]), [Measures].[Weight])
MEMBER [Measures].[n0p02Hi] AS (OrderedData.Item([i0p02Lo] + 1), [Measures].[Weight])
MEMBER [Measures].[PCT0p02] AS [n0p02Lo] + ( [i0p02Rem] * ( [n0p02Hi] - [n0p02Lo] ))
MEMBER [Measures].[i0p2] AS ( .2* ( [RowCount] - 1 ) ) + 1
MEMBER [Measures].[i0p2Lo] AS FIX([i0p2]) - 1
MEMBER [Measures].[i0p2Rem] AS ([i0p2] - FIX([i0p2]))
MEMBER [Measures].[n0p2Lo] AS (OrderedData.Item([i0p2Lo]), [Measures].[Weight])
MEMBER [Measures].[n0p2Hi] AS (OrderedData.Item([i0p2Lo] + 1), [Measures].[Weight])
MEMBER [Measures].[PCT0p2] AS [n0p2Lo] + ( [i0p2Rem] * ( [n0p2Hi] - [n0p2Lo] ))
MEMBER [Measures].[i0p5] AS ( .5* ( [RowCount] - 1 ) ) + 1
MEMBER [Measures].[i0p5Lo] AS FIX([i0p5]) - 1
MEMBER [Measures].[i0p5Rem] AS ([i0p5] - FIX([i0p5]))
MEMBER [Measures].[n0p5Lo] AS (OrderedData.Item([i0p5Lo]), [Measures].[Weight])
MEMBER [Measures].[n0p5Hi] AS (OrderedData.Item([i0p5Lo] + 1), [Measures].[Weight])
MEMBER [Measures].[PCT0p5] AS [n0p5Lo] + ( [i0p5Rem] * ( [n0p5Hi] - [n0p5Lo] ))
--MEMBER [Measures].[PCT0p5] AS Median(OrderedData, [Measures].[Weight])
MEMBER [Measures].[i0p8] AS ( .8* ( [RowCount] - 1 ) ) + 1
MEMBER [Measures].[i0p8Lo] AS FIX([i0p8]) - 1
MEMBER [Measures].[i0p8Rem] AS ([i0p8] - FIX([i0p8]))
MEMBER [Measures].[n0p8Lo] AS (OrderedData.Item([i0p8Lo]), [Measures].[Weight])
MEMBER [Measures].[n0p8Hi] AS (OrderedData.Item([i0p8Lo] + 1), [Measures].[Weight])
MEMBER [Measures].[PCT0p8] AS [n0p8Lo] + ( [i0p8Rem] * ( [n0p8Hi] - [n0p8Lo] ))
MEMBER [Measures].[i0p98] AS ( .98* ( [RowCount] - 1 ) ) + 1
MEMBER [Measures].[i0p98Lo] AS FIX([i0p98]) - 1
MEMBER [Measures].[i0p98Rem] AS ([i0p98] - FIX([i0p98]))
MEMBER [Measures].[n0p98Lo] AS (OrderedData.Item([i0p98Lo]), [Measures].[Weight])
MEMBER [Measures].[n0p98Hi] AS (OrderedData.Item([i0p98Lo] + 1), [Measures].[Weight])
MEMBER [Measures].[PCT0p98] AS [n0p98Lo] + ( [i0p98Rem] * ( [n0p98Hi] - [n0p98Lo] ))
member Ecart1 as [Measures].[PCT0p2]-[Measures].[PCT0p02]
member Ecart2 as [Measures].[PCT0p5]-[Measures].[PCT0p2]
member Ecart3 as [Measures].[PCT0p8] - [Measures].[PCT0p5]
member Ecart4 as [Measures].[PCT0p98] -[Measures].[PCT0p8]
SELECT
{ PCT0p02, Ecart1, Ecart2, Ecart3, Ecart4 ,PCT0p98 } on 0
FROM [BDD PBM]
解决方案
推荐阅读
- react-native - 从最后一个屏幕向右滑动以转到反应导航中的第一个屏幕 Material Top Tabs Navigator
- angularjs - 当我开始使用 ngRoute 我的应用程序坏了
- flutter - Flutter 应用程序:无法从启用客户端证书的服务器获取 HTTP 响应
- postgresql - @> jsonb 的等效条件生成器方法
- javascript - 如何将onclick功能添加到打字稿中的按钮
- java - 浮动操作按钮不适用于下一个活动
- kubernetes - 从 Kubernetes 中的 Calico 网络策略开始
- javascript - [React]:上传文件,更改状态以显示预览,然后等待上传前提交
- google-sheets-api - Google Sheets API 配额管理
- sql - 如何在 SQL 中对返回的列运行计算