pentaho 不同日期计数

pentaho distinct count over date

我目前正在开发 Pentaho,我遇到了以下问题:

我想获得由业务分析执行的 "rooling distinct count on a value, which ignores the "分组依据。例如:

Date          Field

2013-01-01    A
2013-02-05    B
2013-02-06    A
2013-02-07    A
2013-03-02    C
2013-04-03    B

当我在我的架构中使用经典 "distinct count" 聚合器时,对其求和,然后将 "month" 添加到列中,我得到:

Month          Count    Sum

2013-01        1        1
2013-02        2        3
2013-03        1        4
2013-04        1        5

我想得到的是:

Month          Sum

2013-01        1
2013-02        2
2013-03        3
2013-04        3

这是迄今为止所有字段的非重复计数。有人对这个话题有什么想法吗?

我的数据库在 Postgre 中,我正在寻找 PDI、PSW、PBA 或 PME 下的任何解决方案。

谢谢!

PDI 中的一个简单方法如下:

  1. 按字段列对行进行排序
  2. 在字段列中添加用于更改值的序列
  3. 将大于 1 的所有序列值映射到零

这前 3 个有效地标记了第一次看到值的时间(无论日期如何)。

  1. 按 year/month
  2. 对行进行排序
  3. 按年+月对映射序列值求和
  4. 获取所有先前总和的累积总和

这 3 个每月汇总不同的值,然后保留一个累计总和。在 PDI 中,这可能类似于:

我发布了这个转换的要点 here

一个更有效的解决方案是将两种排序并行化,然后在可能的最新点加入。我发布这个是因为它更容易解释,但进行这种转换并使其更加并行应该不会太难。