多个维度的不同计数
Distinct count over multiple dimensions
我是 MDX 的新手。
我必须实施一组指标。示例:
Discharges, for patients ages 18 years and older with either:
- any-listed ICD-9-CM procedure codes for esophageal resection; or
- any-listed ICD-9-CM procedure codes for gastrectomy and any-listed ICD-9 CM diagnosis codes for esophageal cancer. Link to complete spec here.
因此,我认为我需要创建一个测量(我们称之为 countX)来计算属于某个计算集或属于某个其他计算集的事实(放电)的数量。如果一个事实属于两个集合,那么它应该只被计算一次。
集定义可能包含多个维度的交叉连接和过滤器。
然后我们的想法是能够沿任何维度(理想情况下包括用于计算集合的维度)对 countX 进行切片。
我已经了解到 UNION 运算符仅在连接相同维度的集合时有效。那么,我的方法使用 MDX 可行吗?也许我可以用不同的方式来表述问题,以某种方式利用计算成员?
或者使用 SQL 创建填充有正确信息的特定事实表或维度表会更好吗?
谢谢
您可以通过创建使用两个维度的元组来 UNION 两组不同的维度,但基本上在一种情况下忽略一个,在另一种情况下忽略另一个。
我不知道你的多维数据集或数据,所以我将使用非常简单的伪代码。假设您想要获取所有红色的小部件和所有小的小部件。
另一种思考方式是:我想要所有红色的小部件,无论它们的大小如何,我想要所有小的小部件,无论它们的颜色如何。
所以用于表达这一点的伪 MDX 将是:
({[dimColor].[&Red]}, {[dimSize].[All]})
+
({[dimColor].[All]}, {[dimSize].[&Small]})
从维度 A 中获取您想要的特定成员,与维度 B 的所有成员交叉连接。然后您可以将其与维度 A 的所有成员联合,与您想要的特定成员交叉连接维度B,因为你满足了UNION的要求,两个集合维度相同
我是 MDX 的新手。
我必须实施一组指标。示例:
Discharges, for patients ages 18 years and older with either: - any-listed ICD-9-CM procedure codes for esophageal resection; or - any-listed ICD-9-CM procedure codes for gastrectomy and any-listed ICD-9 CM diagnosis codes for esophageal cancer. Link to complete spec here.
因此,我认为我需要创建一个测量(我们称之为 countX)来计算属于某个计算集或属于某个其他计算集的事实(放电)的数量。如果一个事实属于两个集合,那么它应该只被计算一次。
集定义可能包含多个维度的交叉连接和过滤器。
然后我们的想法是能够沿任何维度(理想情况下包括用于计算集合的维度)对 countX 进行切片。
我已经了解到 UNION 运算符仅在连接相同维度的集合时有效。那么,我的方法使用 MDX 可行吗?也许我可以用不同的方式来表述问题,以某种方式利用计算成员?
或者使用 SQL 创建填充有正确信息的特定事实表或维度表会更好吗?
谢谢
您可以通过创建使用两个维度的元组来 UNION 两组不同的维度,但基本上在一种情况下忽略一个,在另一种情况下忽略另一个。
我不知道你的多维数据集或数据,所以我将使用非常简单的伪代码。假设您想要获取所有红色的小部件和所有小的小部件。
另一种思考方式是:我想要所有红色的小部件,无论它们的大小如何,我想要所有小的小部件,无论它们的颜色如何。
所以用于表达这一点的伪 MDX 将是:
({[dimColor].[&Red]}, {[dimSize].[All]})
+
({[dimColor].[All]}, {[dimSize].[&Small]})
从维度 A 中获取您想要的特定成员,与维度 B 的所有成员交叉连接。然后您可以将其与维度 A 的所有成员联合,与您想要的特定成员交叉连接维度B,因为你满足了UNION的要求,两个集合维度相同