Spotfire 聚合筛选 会污损行数据

本文探讨了SQL中Max(Sum([Sales]))OVER([Region])表达式在分组聚合时的问题。当对数据进行聚合并应用OVER子句时,即使在筛选后,全数据集的聚合值仍会显示。例如,无论怎样筛选Region,最大销售额总是全数据的最高值。同样,Max()函数在筛选条件下也会返回全局最大值,而非筛选后的最大值。这可能导致预期结果与实际结果不符,尤其是在进行数据探索和分析时。
摘要由CSDN通过智能技术生成

表达式:Max(Sum([Sales]) OVER ([Region]))

OVER 是对Region进行分组。

原始数据:

1、 首先会计算内部聚合,然后得出各地区销量之和:

 在计算的列中,计算结果始终会应用于输入表的所有行,因此,得出的各地区销量值会污损所有行:

 随后会针对“Total Sales (SMEARED)”计算 Max(),得出的值为 350,而且因为我们插入了计算的列,该值也会污损所有行。这意味着最终结果为:

筛选数据表时,计算的列仍会根据整个数据表显示值。 

这就导致,不管怎么筛选,【如筛选Region的值为WEST】,得到的最大值都是350。

2、求max(Sales)

在不加任何筛选的情况下,值为190,但是加了筛选条件后,【如筛选Product为Phone】,得到的

最大值也为190。。也就是加了筛选后,函数不能正常使用。聚合后只会对所有数据计算。

例子:

对data进行求值 max、min、avg

 筛选data值为40 至 80的区间范围内

 筛选后max、min、avg值不变。

max值应为80,min为50,avg为62.5

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

种麦南山下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值