You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Period列唯一值计算聚合平均值并在Qlik Sense条形图中实现筛选联动的技术求助

解决基于Period条目聚合平均值的动态计算问题

看起来你核心需求是:在玩家维度([ID Player],[Player Type],[ID Game],[Player Role])下,计算每个Period行对应的加权平均值的算术平均,并且这个计算要能随筛选条件动态更新,最终得到像(83,50+86,14+86,14)/3 = 85,26这样的结果。

正确的计算公式

你可以试试这个嵌套窗口函数的写法,它能准确实现你的需求:

AVG(
  Sum([Weight] * [Score]) OVER ([Period],[ID Player],[Player Type],[ID Game],[Player Role]) 
  / Sum([Weight]) OVER ([Period],[ID Player],[Player Type],[ID Game],[Player Role])
) OVER ([ID Player],[Player Type],[ID Game],[Player Role])

公式逻辑拆解

  1. 内层窗口计算:先针对每个Period + 玩家维度的组合,算出该Period对应的加权平均值(Sum(Weight*Score)/Sum(Weight))。这一步会确保同一个Period下的所有行,都会带上这个Period的加权值(比如两个属于同一Period的行,都会得到86,14)。
  2. 外层窗口求平均:再对玩家维度下的所有行的这个Period加权值求算术平均。这样就会把每个Period的条目都算进去,得到你需要的(83,50+86,14+86,14)/3 = 85,26结果。

为什么之前的方法不对?

  • 加DISTINCT的写法会把重复Period的加权值去重,只计算一次86,14,导致结果变成(83,50+86,14)/2 = 84,82,不符合你的需求。
  • 之前尝试的评论公式错误地取了每个Period的首个值(比如60、97),而不是正确的加权平均值,所以结果偏差。

这个公式会自动跟随筛选条件动态更新——当你添加或移除筛选时,数据集里的Period条目会变化,加权值和最终的平均值都会自动重新计算。

内容的提问来源于stack exchange,提问作者Edoardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 16:49:05