Qlik 从多个字段中获得不同的计数

Posted

技术标签:

【中文标题】Qlik 从多个字段中获得不同的计数【英文标题】:Qlik get distinct count from multiple fields 【发布时间】:2017-07-28 05:42:45 【问题描述】:

我已经在网上搜索了一个多小时,但找不到我需要的东西。

我有两列包含人名; ContactCreated By。两者格式相同。

基本上我需要计算这两个列组合的不同值。例如该名称可以多次出现在每列数据中,但我只希望该名称计算一次。

我尝试使用以下内容,但它返回的数字高于两列之间的实际不同值。

=Sum(Aggr(Count(Distinct [Created By]),[Contact])) 

也试过了,返回的数字和上面一样。

=Count(Distinct [Contact] & [Created By])

提前致谢!

【问题讨论】:

【参考方案1】:

我想你可以试试这样的:

count(distinct Contact) + count($<[Created By]-=p(Contact)> distinct [Created By])

基本上,它将来自 Contact 的唯一计数添加到来自Created By 的唯一计数,其中Created By 不是Contact 中的名称之一。

【讨论】:

你太棒了!!!太感谢了。我对 Qlikview 比较陌生。是否可以再添加一件?现在工作正常,我发现我需要在“创建”大于或等于 2016 年 1 月 1 日的地方添加。想法? 还有 -=p 中的 p 代表什么? 为了保存迭代,这正是我现在想要做的,因为我知道计算两列之间的不同值是可能的。我需要计算一年中第一天的不同计数(联系人+创建者)与当天/今年最后一天之间的差异,以较大者为准。例如2016 年 1 月 1 日有 100 个不同,2016 年 12 月 31 日有 125 个不同,显示的值等于 25。 2017 年 1 月 1 日为 150,2017 年 3 月 8 日为 166,显示的值将等于 16。 p() 是一个函数,它产生传递的字段的“可能值”。它在上述公式中的使用(没有任何 set 修饰符)只会导致 Contact 的所有不同值。 p() 函数有许多更广泛的用途。请参阅here 或尝试使用谷歌搜索“Qlik P() 和 E()”以获取更多详细信息。 假设您的数据已设置为如果您在日历列表框中选择 1/1/16 将在 ContactCreated By 中有关联的名称,您可以修改原始公式如:(count($&lt;date='2016-12-31'&gt;distinct Contact) + count($&lt;date='2016-12-31', [Created By]-=p(Contact)&gt; distinct [Created By])) - (count($&lt;date='2016-01-01'&gt;distinct Contact) + count($&lt;date='2016-01-01', [Created By]-=p(Contact)&gt; distinct [Created By]))。如果您的数据设置为 2016 年 1 月 1 日和 16 年 12 月 31 日是截止日期,我们将不得不稍作修改。

以上是关于Qlik 从多个字段中获得不同的计数的主要内容,如果未能解决你的问题,请参考以下文章

返回peewee ORM中分组项目的计数

在 django 映射中如何获得完整的选择字段计数

从同一个表mysql存储过程中选择具有不同条件的多个计数

如何从 bigquery 中的另一个表中获取短语列表的表字段中的匹配计数?

根据搜索查询从多个提到的列表中获取项目计数

蜂巢多次计数相同的字段