Qlikview 最大聚合值
Qlikview Max Aggr Value
我正在尝试从具有不同总和(持续时间)的 6 台不同机器中呈现最大总和(持续时间)值:
机器 1:200
机器 2:300
机器 3:400
机器 4:500
机器 5:600
机器 6:700
当我使用:
Max(total aggr(Sum(Duration),MachineID)) 这是结果:
机器 1:700
机器 2:700
机器 3:700
机器 4:700
机器 5:700
机器 6:700
如果我用
Max(aggr(Sum(Duration),MachineID))
和以前一样,但没有 "total",我得到这个:
机器 1:200
机器 2:300
机器 3:400
机器 4:500
机器 5:600
机器 6:700
我想要的结果是一张只显示一个最大值的图表:
机器 6: 700
你能帮忙吗?谢谢!
在 Qlik 中,我认为实现此目的的唯一方法是使用计算维度。这个想法是设置一个维度,仅在满足条件时才显示值。在您的情况下,这种情况是当一台机器的持续时间是所有机器中的最大值时。
计算维度(缩进提供注释):
=if(
//check each machine's sum(duration) against the maximum sum(duration) for all machines
aggr(sum(Duration),MachineID) >= max(total aggr(sum(Duration),MachineID)),
//if >= max, use MachineID as the dimension
MachineID,
//if < max display nothing
null()
)
未注释 (copy/paste) 版本:
=if(aggr(sum(Duration),MachineID) >= max(total aggr(sum(Duration),MachineID)), MachineID, null())
其中一个关键是确保选中维度上的 'Suppress When Value is Null' 复选框。这是必需的,因此我们可以强制将计算出的维度用作过滤器。
另一个提示是转到 table/chart 和 select 您创建的计算维度的演示选项卡,然后选中 'Hide Column' 单选按钮。由于我们仅将计算维度用作过滤器而不是实际的列名,因此我们可以将其隐藏。
完成后,您的尺寸将为:MachineID
和上面列出的计算尺寸。您的 expression/measure 将只是 sum(duration)
.
我发现 Qlik 在按表达式过滤方面普遍较弱 output/value。上面的过程确实有效,但是对于在许多领域中非常常见的东西,当你在一个图表中有多个像这样的计算维度时,这会变得难以承受。
有关使用滑块设置阈值而不是最大值的类似问题,请参阅 。
我正在尝试从具有不同总和(持续时间)的 6 台不同机器中呈现最大总和(持续时间)值: 机器 1:200 机器 2:300 机器 3:400 机器 4:500 机器 5:600 机器 6:700
当我使用: Max(total aggr(Sum(Duration),MachineID)) 这是结果:
机器 1:700 机器 2:700 机器 3:700 机器 4:700 机器 5:700 机器 6:700
如果我用 Max(aggr(Sum(Duration),MachineID)) 和以前一样,但没有 "total",我得到这个:
机器 1:200 机器 2:300 机器 3:400 机器 4:500 机器 5:600 机器 6:700
我想要的结果是一张只显示一个最大值的图表: 机器 6: 700
你能帮忙吗?谢谢!
在 Qlik 中,我认为实现此目的的唯一方法是使用计算维度。这个想法是设置一个维度,仅在满足条件时才显示值。在您的情况下,这种情况是当一台机器的持续时间是所有机器中的最大值时。
计算维度(缩进提供注释):
=if(
//check each machine's sum(duration) against the maximum sum(duration) for all machines
aggr(sum(Duration),MachineID) >= max(total aggr(sum(Duration),MachineID)),
//if >= max, use MachineID as the dimension
MachineID,
//if < max display nothing
null()
)
未注释 (copy/paste) 版本:
=if(aggr(sum(Duration),MachineID) >= max(total aggr(sum(Duration),MachineID)), MachineID, null())
其中一个关键是确保选中维度上的 'Suppress When Value is Null' 复选框。这是必需的,因此我们可以强制将计算出的维度用作过滤器。
另一个提示是转到 table/chart 和 select 您创建的计算维度的演示选项卡,然后选中 'Hide Column' 单选按钮。由于我们仅将计算维度用作过滤器而不是实际的列名,因此我们可以将其隐藏。
完成后,您的尺寸将为:MachineID
和上面列出的计算尺寸。您的 expression/measure 将只是 sum(duration)
.
我发现 Qlik 在按表达式过滤方面普遍较弱 output/value。上面的过程确实有效,但是对于在许多领域中非常常见的东西,当你在一个图表中有多个像这样的计算维度时,这会变得难以承受。
有关使用滑块设置阈值而不是最大值的类似问题,请参阅