【问题标题】:cross tab/pivoting in pentaho CDEpentaho CDE 中的交叉表/透视
【发布时间】:2018-11-05 22:12:52
【问题描述】:

我正在尝试在 postgresql 中创建动态旋转。我的查询包含 3 个维度,其中一个包含案例语句。和一项措施。我尝试了在网上找到的各种解决方案,但没有一个有效。 我正在寻找一个将普通查询转换为透视表的脚本。请帮我解决这个问题。

【问题讨论】:

    标签: pentaho pentaho-cde


    【解决方案1】:

    基本上你有 3 个选项:

    • 在MDX中编写查询,可以轻松返回透视表;首先需要蒙德里安模式;
    • 使用 Kettle 数据源并通过 PDI 对数据进行非规范化处理;
    • 在表组件的 postFetch 方法中编写一个非规范化函数:它获取来自查询的数据并在将其传递给表渲染器之前对其进行操作。

    代码 sn -p 指导您完成组件 postFetch 中的反规范化过程:

    function(data){
        var resultset = data.resultset;
        var metadata = data.metadata;
    
        // doStuff - this is the bit you'll have to code according to your needs. The resultset array has 1 element for each row of data; the metadata array holds metadata info such as colName, colType and output index.
        var newResultset = someFunction(resultset);
        var newMetadata = someOtherFunction(metadata);
    
        // set data to the new values
        data.resultset = newResultset;
        data.metadata = newMetadata;
    
        // return the modified data object to the component
        return data;
    }
    

    【讨论】:

    • 我已经尝试过在kettle上进行动态旋转,每个人都显示为静态的。您能否提供动态旋转的postFetch脚本。
    • 要在 Kettle 中使用非规范化,您可能需要使用元数据注入,以便输出字段的数量是动态的。我将编辑帖子以在 javascript 中包含非规范化函数的骨架,但您必须弄清楚细节。
    • 感谢您的反馈。我的查询将类似于“从 tableCountry 选择国家、日期、销售额”。我需要透视日期字段,如果用户根据日期过滤器过滤日期,则范围将发生变化。该报告看起来像附加图像。你能提供这个用例的 postFetch 脚本吗.. PFA drive.google.com/open?id=1FjmqvGMgdRSJoc6tQM-zshu_IEfhhDJX
    猜你喜欢
    • 2014-07-02
    • 2013-04-16
    • 2014-07-07
    • 2018-09-10
    • 2013-12-25
    • 2018-09-23
    • 1970-01-01
    • 2019-01-03
    • 2015-04-15
    相关资源
    最近更新 更多