MONDRIAN MDX查询的问题
我需要从MySQL中的一个表创建一个OLAP视图 我需要从表中的以下列获取信息:MONDRIAN MDX查询的问题,mdx,olap-cube,mondrian,Mdx,Olap Cube,Mondrian,我需要从MySQL中的一个表创建一个OLAP视图 我需要从表中的以下列获取信息: 登录说明 注销 时间戳 用户名 所以我创建了这个蒙德里安模式: <Schema name="Login"> <Cube name="Login" visible="true" cache="true" enabled="true"> <Table name="event_log"> </Table> <Dimension visi
- 登录说明
- 注销
- 时间戳
- 用户名
<Schema name="Login">
<Cube name="Login" visible="true" cache="true" enabled="true">
<Table name="event_log">
</Table>
<Dimension visible="true" highCardinality="false" name="UserFirstName">
<Hierarchy visible="true" hasAll="true" allMemberName="All UserFirstName">
<Level name="UserFirstName" visible="true" column="userFirstName" type="String" uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Dimension visible="true" highCardinality="false" name="LoginNote">
<Hierarchy visible="true" hasAll="true" allMemberName="All LoginNote">
<Level name="LoginNote" visible="true" column="loginNote" type="String" uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Dimension visible="true" highCardinality="false" name="LogoutNote">
<Hierarchy visible="true" hasAll="true" allMemberName="All UserFirstName">
<Level name="LogoutNote" visible="true" column="logoutNote" type="String" uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Measure name="Users" column="userFirstName" aggregator="count" description="Users">
</Measure>
或
但是我不能跑
Select
UserFirstName.Children ON COLUMNS,
{LogoutNote.Children,LoginNote.Children} ON ROWS
FROM Login
因为返回了一个错误:
函数“{}”的所有参数必须具有相同的层次结构
任何帮助都将不胜感激
谢谢
{…}
符号是联合(…)
的缩写,它将两组成员组合在一起。这些成员必须来自同一层次结构(如错误消息所述),但您包括来自不同维度/层次结构的LogoutNote和loginote的成员
如果要组合层次结构,需要Crossjoin()
它们,创建两个集合的笛卡尔积
SELECT
UserFirstName.Children ON COLUMNS,
Crossjoin(LogoutNote.Children, LoginNote.Children) ON ROWS
FROM Login
我不确定这是否正是您所期望的查询结果,您可能希望在Crossjoin()之前添加一个非空的
,以消除所有没有值的loginote和LogoutNote组合
希望这能让你走上正轨
Select
UserFirstName.Children ON COLUMNS,
{LogoutNote.Children,LoginNote.Children} ON ROWS
FROM Login
SELECT
UserFirstName.Children ON COLUMNS,
Crossjoin(LogoutNote.Children, LoginNote.Children) ON ROWS
FROM Login