从spotfire中的总和和计数创建一个平均列
Posted
技术标签:
【中文标题】从spotfire中的总和和计数创建一个平均列【英文标题】:create an Average column from a sum and a count in spotfire 【发布时间】:2015-10-29 00:26:51 【问题描述】:我从数据库中检索数据,然后自动计算总和和计数。
有点像
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 使用 avg on Cost,您将拥有 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:谢谢你的帮助,但我得到的所有答案/cmets 都是关于 SQL 的。这绝对不是我想要的。我有一个生成上述数据的 sql 语句,这些数据被加载到 SPOTFIRE 中——我不会更改 sql 部分,我正在寻找一个 Spotfire 解决方案。我需要从这些数据中计算出每天的平均成本。但我只是不知道如何告诉 Spotfire 在我的平均计算中使用计数作为权重。
【问题讨论】:
日期的数据类型是什么? date 是一个日期 ;) 只有日期,没有时间戳 请显示一些数据。 @SNC 已添加,够吗? 是的,这就够了。您可以在日期列中使用 Group By 子句 【参考方案1】:您可以使用的公式在一定程度上取决于您使用的可视化。例如,如果您使用条形图,则可以使用公式Sum([Num] * [Cost]) / Sum([Num])
。但是您需要将此添加为自定义表达式,而不是插入计算列。在条形图示例中,您可以在类别轴上显示日期。
我测试了Sum([Num] * [Cost]) / Sum([Num])
公式,它适用于大多数可视化,例如交叉表、热图、条形图、折线图等
但不在表格可视化中,因为这不会聚合到更高的级别。
【讨论】:
以上是关于从spotfire中的总和和计数创建一个平均列的主要内容,如果未能解决你的问题,请参考以下文章