【问题标题】:Qlikview Max Aggr ValueQlikview 最大聚合值
【发布时间】:2017-02-14 02:38:50
【问题描述】:

我正在尝试从 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)) 和以前一样,但没有“总数”,我明白了:

机器 1:200 机器2:300 机器 3:400 机器4:500 机器5:600 机器6:700

我想要的结果是只显示一个最大值的图表: 机器 6:700

你能帮忙吗?谢谢!

【问题讨论】:

  • 请添加一些数据以便我们更好地理解请求
  • 对不起!我无法很好地格式化文本。希望对您有所帮助,谢谢!

标签: max aggregate qlikview


【解决方案1】:

在 Qlik 中,我认为实现此目的的唯一方法是使用计算尺寸。这个想法是设置一个仅在满足条件时才显示值的维度。在您的情况下,这种情况是机器的持续时间是所有机器中的最大值。

计算维度(缩进以提供 cmets):

=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()
)

未注释(复制/粘贴)版本:

=if(aggr(sum(Duration),MachineID) >= max(total aggr(sum(Duration),MachineID)), MachineID, null())

其中一个关键是确保选中维度上的“当值为 Null 时抑制”复选框。这是必需的,因此我们可以强制此计算的维度充当过滤器。

另一个提示是转到表格/图表的“展示”选项卡并选择您创建的计算维度并选中“隐藏列”单选按钮。由于我们仅将计算出的维度用作过滤器而不是实际的列名,因此我们可以将其隐藏。

完成后,您的尺寸将为:MachineID 和上面列出的计算尺寸。你的表达/测量将只是sum(duration)

我发现 Qlik 在按表达式输出/值过滤方面通常较弱。上述过程确实有效,但是对于许多领域中非常常见的事情,当您在一个图表中具有多个像这样的计算维度时,这将变得不堪重负。

有关使用滑块设置阈值而不是最大值的类似问题,请参阅 here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-01
    • 2017-08-31
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多