如何在 mdx 查询上应用分组依据

Posted

技术标签:

【中文标题】如何在 mdx 查询上应用分组依据【英文标题】:How to Apply group by on mdx Query 【发布时间】:2018-01-11 10:32:01 【问题描述】:

工作 pentaho 仪表板试图生成报告以获取两个日期之间每天/每周/每月的交易计数。

低于 MDX 查询返回事务计数 1,因为“创建”不是分组依据

WITH
SET [~COLUMNS] AS Filter([created].DefaultMember.Children, [created].CurrentMember.name >= "2014-10-01" AND Left([created].CurrentMember.Name, 10) <= "2014-10-02")
SET [~ROWS] AS
    [markup].[markup].Members
SELECT
NON EMPTY CrossJoin([~COLUMNS], [Measures].[Transaction Count]) ON COLUMNS,
NON EMPTY [~ROWS] ON ROWS
FROM [transaction]

如何对列“[created]”进行分组

【问题讨论】:

【参考方案1】:

为什么不把度量移到 WHERE 子句中:

WITH
SET [~COLUMNS] AS Filter([created].DefaultMember.Children, [created].CurrentMember.name >= "2014-10-01" AND Left([created].CurrentMember.Name, 10) <= "2014-10-02")
SET [~ROWS] AS
    [markup].[markup].Members
SELECT
NON EMPTY [~COLUMNS] ON COLUMNS,
NON EMPTY [~ROWS] ON ROWS
FROM [transaction]
WHERE [Measures].[Transaction Count]

【讨论】:

相同的输出不计算日/周/月Please see 您需要更改您创建的维度,使其包含周、月、年等的层次结构 查看 Microsoft Adventure Works 多维数据集中的 Date 维度...我认为 Date 的这种设计会涵盖很多可能性

以上是关于如何在 mdx 查询上应用分组依据的主要内容,如果未能解决你的问题,请参考以下文章

MDX 查询以对具有特定日期范围的日期维度进行分组

MDX如何分组

如何在 MDX 查询中使用第三维(ON PAGES 语法)

如何使用 MDX 查询应用层次化和排序

Spark SQL 中分组依据和窗口函数如何交互?

在 GraphQL 查询中分组后如何限制和跳过标签列表页面的分页?