Qlik Sense 聚合并比较两个字段中的值

问题描述 投票:0回答:1

在 Qlik Sense(仅限图表)中,我需要一些帮助来识别和计算每个 ID 中 CODE_A 中的值与 CODE_B 中的值不匹配的情况。

根据我的示例数据,我想要一个直表,其中每个 ID 一行以及“错误”的数量,如下所示:

对于每个 ID,如果 CODE_A 中的值与 CODE_B 中的值不匹配,则会发生错误。在这种情况下:

  • ID 1 不是错误,因为值“AA”也存在于 CODE_B 中。
  • ID 2 有 1 个错误,因为“CC”<>“DD”
  • ID 5 有 2 个错误,因为“AA”或“BB”都不在 CODE_B 中
  • ID 6 有 0 个错误,因为值“CC”同时存在于 CODE_A 和 CODE_B 中

样本数据:

Data:
Load *
Inline [ID, CODE_A, CODE_B
1, AA, AA
1, AA, BB
2, CC, DD
3, EE, EE
3, EE, FF
4, FF, FF
4, FF, GG
5, AA, FF
5, BB, GG
6, CC, DD
6, EE, CC
];
qliksense
1个回答
0
投票

一个非常特别的概念..如果我没理解错的话:

  1. 如果给定 ID 的 CODE_B 中至少存在一个 CODE_A,则您希望计数为零错误。喜欢 ID 1,3,4,6
  2. 如果给定 ID 没有与 CODE_B 匹配的代码,您希望将所有代码都计入 CODE_A。喜欢 ID 2 和 5

那么有不同的方法可以实现这一目标。

后端:

Data: 
Load * Inline [ID, CODE_A, CODE_B 
1, AA, AA 
1, AA, BB 
2, CC, DD 
3, EE, EE 
3, EE, FF 
4, FF, FF 
4, FF, GG 
5, AA, FF 
5, BB, GG 
6, CC, DD 
6, EE, CC ];

Left Join
Load ID, CODE_B as CODE_A, 1 as flag
RESIDENT Data;

然后在前端:

带有ID和以下公式的直表

Sum(Aggr(If(IsNull(Max(flag)), COUNT(1), 0), ID))

你会得到:

我希望这就是您正在寻找的。

© www.soinside.com 2019 - 2024. All rights reserved.