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 的所有序列值映射到零
这前 3 个有效地标记了第一次看到值的时间(无论日期如何)。
- 按 year/month
对行进行排序
- 按年+月对映射序列值求和
- 获取所有先前总和的累积总和
这 3 个每月汇总不同的值,然后保留一个累计总和。在 PDI 中,这可能类似于:
我发布了这个转换的要点 here。
一个更有效的解决方案是将两种排序并行化,然后在可能的最新点加入。我发布这个是因为它更容易解释,但进行这种转换并使其更加并行应该不会太难。
我目前正在开发 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 的所有序列值映射到零
这前 3 个有效地标记了第一次看到值的时间(无论日期如何)。
- 按 year/month 对行进行排序
- 按年+月对映射序列值求和
- 获取所有先前总和的累积总和
这 3 个每月汇总不同的值,然后保留一个累计总和。在 PDI 中,这可能类似于:
我发布了这个转换的要点 here。
一个更有效的解决方案是将两种排序并行化,然后在可能的最新点加入。我发布这个是因为它更容易解释,但进行这种转换并使其更加并行应该不会太难。