Sql 理解MDX';全部';?

Sql 理解MDX';全部';?,sql,mdx,olap,Sql,Mdx,Olap,我是来自SQL世界的MDX新手,我试图理解“所有”的概念。我理解“ALL”是一个单独的成员,创建一个低粒度的多维数据集。这是正确的吗 有哪些SQL示例可以帮助我解释这个概念?当然,SQL使用的是表而不是多维数据集,但我确信有一些相似之处可以帮助我建立连接?让我尝试创建一个示例 假设我有一个表,其模式表示一个具有3维的立方体: myTable (dim1_attribute1,dim1_attribute2, dim2_attribute1,dim2_attribute2,dim2_attribu

我是来自SQL世界的MDX新手,我试图理解“所有”的概念。我理解“ALL”是一个单独的成员,创建一个低粒度的多维数据集。这是正确的吗

有哪些SQL示例可以帮助我解释这个概念?当然,SQL使用的是表而不是多维数据集,但我确信有一些相似之处可以帮助我建立连接?让我尝试创建一个示例

假设我有一个表,其模式表示一个具有3维的立方体:

myTable (dim1_attribute1,dim1_attribute2, dim2_attribute1,dim2_attribute2,dim2_attribute3,
dim3_attribute1,dim3_attribute2,dim3_attribute3)

什么样的SQL会在dim3上为我提供一个粒度为“ALL”的聚合?

“ALL”意味着基本上您考虑了该维度的所有成员-您没有使用该维度的某个特定成员切片多维数据集。在SQL查询中,等效的方法是从where子句中完全省略dim3,因此您不会使用dim3中的某个特定值筛选结果聚合,而是将所有行都考虑在内。

请注意,可能有多个级别不能仅添加(预算、实际等)。我创建了一个多维数据集,您可以将这些数据集建模为顶级成员,而不需要在其上方设置all成员。在SQL中,您需要考虑这一点。@vldmrrdjcc为了清楚起见,在查看dim3的ALL成员时,例如,在dim3的ALL成员上滚动,这就像从SQL查询SELECT/GROUP BY中完全删除上面提到的3x dim3属性,以获得最粗的粒度一样?@gjvdkamp您能提供更多关于这种情况的详细信息吗?有时成员会“汇总”到其父公司,例如,不同分支机构的销售数字汇总到整个公司的“全部”中。在这种情况下,在where/groupby中省略dim3将为您提供所有分支机构的总数,一切正常。但您也可以在没有意义的地方添加成员,如示例预算、实际值等。将这些加在一起只会导致重复的数字。在这种情况下,任何where/grouby都不会导致无意义的结果。