从总和和 spotfire 中的计数创建平均列

create an Average column from a sum and a count in spotfire

我从数据库中检索数据,自动计算总和和计数。

类似于

Select Data, Product, count(*) as Num, sum(cost) as cost
from myTable
group by Data, Product

根据直接输入Spotfire的这些数据,我想按日期显示总成本,以及平均成本。 我不能直接使用 AVG 聚合,所以我在考虑使用像 cost*Num/sum(num) 这样的公式,但它没有显示正确的数字,因为 sum(num) 不是每天...

有没有办法在 spotfire 公式中指定每天只求和? 或者另一种方法?


编辑: 这是一些数据

2015/7/1    BIKE    128 3,635,770
2015/7/1    AUTO    487 22,932,530
2015/7/2    AUTO    519 25,219,780
2015/7/2    BIKE    123 3,355,270
2015/7/3    BIKE    135 4,191,060
2015/7/3    AUTO    507 24,687,420

例如,如果您在 2015 年 7 月 1 日使用平均成本,您将有 13,284,150 (=(3,635,770 + 22,932,530) / 2) 但实际平均值为 18,916,294(2015/7/1 独立于产品的平均值,=(3,635,770 * 128 + 22,932,530 * 487) / (128+487)


EDIT2:谢谢你的帮助,但我得到的所有 answers/comments 都是关于 SQL 的。这绝对不是我想要的。我有一个生成上述数据的 sql 语句,这些数据加载到 SPOTFIRE 中 - 我不会更改 sql 部分,我正在寻找 spotfire 解决方案。我需要一种方法从这些数据中计算出每天的平均成本。但我只是不知道如何告诉 Spotfire 在我的平均计算中使用计数作为权重。

您可以使用的公式在一定程度上取决于您使用的可视化效果。例如,如果您使用条形图,则可以使用公式 Sum([Num] * [Cost]) / Sum([Num])。但是您需要将其添加为自定义表达式,而不是插入计算列。在条形图示例中,类别轴上有日期。

我测试了 Sum([Num] * [Cost]) / Sum([Num]) 公式,它适用于大多数可视化,例如交叉 table、热图、条形图、折线图等。 但不在 table 可视化中,因为这不会聚合到更高级别。