从点火中创建一个平均列,并在点火中创建一个计数

时间:2015-08-06 02:32:15

标签: sql average 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:Thx对你有所帮助,但我得到的所有答案/评论都是关于SQL的。这绝对不是我想要的。我有一个产生上述数据的sql语句,这些数据都加载到SPOTFIRE中 - 我不会更改sql部分,我正在寻找一个spotfire解决方案。我需要从这些数据中计算出每日平均成本。但我只是不知道如何告诉Spotfire在我的平均计算中使用计数作为权重。

1 个答案:

答案 0 :(得分:1)

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

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