Ssas 如何添加具有其他维度值的列?
如果标题没有意义,我深表歉意。我正在尝试做一些可能很简单的事情,但我还没有弄明白,我不知道如何寻找答案。我有以下MDX查询:Ssas 如何添加具有其他维度值的列?,ssas,mdx,mondrian,Ssas,Mdx,Mondrian,如果标题没有意义,我深表歉意。我正在尝试做一些可能很简单的事情,但我还没有弄明白,我不知道如何寻找答案。我有以下MDX查询: SELECT event_count ON 0, TOPCOUNT(name.children, 10, event_count) ON 1 FROM events 返回如下内容: | | event_count | +---------------+-------------+ | P Davis |
SELECT
event_count ON 0,
TOPCOUNT(name.children, 10, event_count) ON 1
FROM
events
返回如下内容:
| | event_count |
+---------------+-------------+
| P Davis | 123 |
| J Davis | 123 |
| A Brown | 120 |
| K Thompson | 119 |
| R White | 119 |
| M Wilson | 118 |
| D Harris | 118 |
| R Thompson | 116 |
| Z Williams | 115 |
| X Smith | 114 |
我需要增加一列(gender
)。性别不是衡量标准。这只是数据的另一个维度。例如,考虑这个查询:
SELECT
gender.children ON 0,
TOPCOUNT(name.children, 10, event_count) ON 1
FROM
events
但这不是我想要的(
很好的尝试,但我只想要三列:name
,event\u count
,和gender
。这有多难
显然,这反映了我对MDX的理解不足。任何指向高质量介绍材料的指针都将不胜感激。重要的是要理解,在MDX中,您是在每个轴上构建成员集,而不是像表格行集那样指定列名。您是在描述结果的二维网格,而不是linear行集。如果将每个维度想象为一个表,则成员集是该表中单个列的唯一值集 当您选择一个度量值作为成员(如第一个示例中所示)时,看起来好像您是从表中选择的,因此很容易被误解。当您选择维度时,您会得到许多成员以及行和列之间的交叉连接(在本例中,这是稀疏的,因为名称和性别是1对1) 因此,您可以在一个轴上交叉连接这两个维度,然后过滤掉空单元格:
SELECT
event_count ON 0,
TOPCOUNT(
NonEmptyCrossJoin(name.children, gender.children),
10,
event_count) ON 1
FROM
events
这将为您提供一列(event_count)和10行的结果,其中每行由元组(name,gender)组成
我希望这会让你走上正确的道路,请随时询问你想要我澄清的问题
对于一般介绍材料,我认为《MDX解决方案》一书是一个很好的起点:
重要的是要理解,在MDX中,您是在每个轴上构建成员集,而不是像表格行集那样指定列名。您是在描述结果的二维网格,而不是线性行集。如果您将每个维度想象为一个表,则成员集是该表中单个列的唯一值集 当您选择一个度量值作为成员(如第一个示例中所示)时,看起来好像您是从表中选择的,因此很容易被误解。当您选择维度时,您会得到许多成员以及行和列之间的交叉连接(在本例中,这是稀疏的,因为名称和性别是1对1) 因此,您可以在一个轴上交叉连接这两个维度,然后过滤掉空单元格:
SELECT
event_count ON 0,
TOPCOUNT(
NonEmptyCrossJoin(name.children, gender.children),
10,
event_count) ON 1
FROM
events
这将为您提供一列(event_count)和10行的结果,其中每行由元组(name,gender)组成
我希望这会让你走上正确的道路,请随时询问你想要我澄清的问题
对于一般介绍材料,我认为《MDX解决方案》一书是一个很好的起点:
对于在线MDX介绍性材料,您可以查看此介绍主要MDX概念的内容。对于在线MDX介绍性材料,您可以查看此介绍主要MDX概念的内容