Cognos 重复最大计数列值

Cognos Duplicate maximum count Column value

我正在尝试标记 [Customer] 列中由 [Division] 列确定的数据项的出现,并在 [flag] 列中为其设置三个值。
如果数据项 [Customer] 在单独的行中具有列 [Division] 的“Q”和“Z”数据项值,我希望数据项 [flag] 的值在每次重复出现时都设置为 2数据项 [Customer],其中客户是“Q”和“Z”部门的成员。
如果存在这种情况,我希望 [flag] 列的值全部等于 2 [Customer] 列值出现的行。
如果 [Customer] 的数据项值 [Division] 仅为“Q”,则将 [flag] 设置为 1,如果数据项[Customer] 的值 [Division] 仅为“Z”,然后将 [flag] 设置为 0。
[Customer] 列数据项有数千个可能的值和多个行可以包含所需的 [customer] / [flag] 组合。
如何在下面的示例中创建列 [flag]
我希望客户按唯一值分隔。
注意客户 X 重复 3 次,客户 A 重复两次,每个 [flag] 列中的值为 2 - ALL [flag] 值,其中 a客户重复 连续是 2.

期望的结果:

   Customer    Rep    division  Count
       A   :    1   :    Q   :    1
       B   :    2   :    Z   :    0
       X   :    3   :    Q   :    2
       X   :    4   :    Z   :    2
       X   :    4   :    Q  :     2
       D   :    5   :    Z   :    0
       S   :    3   :    Q   :    2
       H   :    4   :    Q   :    1
       S   :    4   :    Z   :    2

根据您的扩​​展解释试试这个:

CASE count(distinct [division] for [Customer]) 
WHEN 2 THEN 2 
WHEN 1 AND [division] = 'Q' THEN 1 
WHEN 1 AND [division] = 'Z' THEN 0 
END

我们为 'Customer' 的每个值计算 'division' 的不同值。如果计数是 2,我们知道 'Q' 和 'Z' 都被表示,我们输出整数 2。如果计数是 1 并且 'division' 的值是 'Q' 那么我们输出 1。最后,如果计数为 1 且 'division' 为 'Z',则我们输出 0。

假设 'Q' 和 'Z' 是 'division' 的唯一可能值,您可以安全地将最后一个测试更改为:ELSE 0 以简化。为了清楚起见,我包含了完整的逻辑。