【发布时间】:2026-01-28 21:35:01
【问题描述】:
我的数据库连接是通过 JDBC 连接的 MySQL,标准的 innodb。 由此,我创建了一个非常简单的数据源,其中包含两个维度和一个度量。
两个维度分别是:
- 位置(字符串)
- ddate(日期/时间,至少在Mysql中)
度量是相同的“位置”元素,设置为按计数聚合
我正在尝试按位置、星期几(周一至周日或 1-7 都可以)获取相当简单的项目计数
我已经尝试了以下几十种变体,包括“with member...as...”来提取星期几,都失败了。
SELECT
NON EMPTY Hierarchize({ datepart("d",cdate([diDate.hDate].[mDate]) }) ON COLUMNS,
NON EMPTY {Hierarchize({[diLocation.hLocation].[mLocation].Members})} ON ROWS
FROM [k_olap]
任何帮助将不胜感激。我已经为此苦苦思索了好几个小时,而且似乎对于日期的一个部分来说它应该是简单直接的,而不需要在模式中建立一个完整的时间维度,而 Pentaho BA 不需要方便在网络服务器中。
这是 Pentaho BA 从 MySQL 数据源生成的 XML 模式:
<Schema name="k_olap">
<Dimension name="diDate">
<Hierarchy name="hDate" hasAll="true" primaryKey="ID">
<Table name="post" schema="kn"/>
<Level name="mDate" uniqueMembers="false" column="ddate">
</Level>
</Hierarchy>
</Dimension>
<Dimension name="diLocation">
<Hierarchy name="hLocation" hasAll="true" primaryKey="ID">
<Table name="post" schema="kn"/>
<Level name="mLocation" uniqueMembers="false" column="location" type="String">
</Level>
</Hierarchy>
</Dimension>
<Cube name="k_olap">
<Table name="post" schema="kn"/>
<DimensionUsage name="diDate" source="diDate" foreignKey="ID"/>
<DimensionUsage name="diLocation" source="diLocation" foreignKey="ID"/>
<Measure name="mesLocation" column="location" aggregator="count" formatString="Standard"/>
</Cube>
</Schema>
【问题讨论】: