我在Tableau中使用mongo,并且有一个布尔值“ verified”,显示为true vs false。
每个用户都可以在他/她的记录中添加“证书”,然后我们使用管理工具将证书标记为verify:true或authenticated:false。我想显示一个简单的表,其中包含每个用户的证书数量,然后是另一列,其中包含已验证的数量。
当前,我使用的是“ COUNTD([Certifications.Verified])”来计数已验证的数量,但我认为它不是在准确计数。
这只是在计算“已验证”子模式是否以真或假状态存在,因此数字不准确。请注意,在某些情况下,该节点不存在,并显示为空。
我需要计算是否经过验证的结果为true,如果不存在经验证的节点,则为1;否则为0。
如何添加逻辑以在Tableau中对此进行精确计数?
更新:感谢您对Mongo进行查询,但我正在寻找Tableau自定义字段来显示此内容。
答案 0 :(得分:0)
您将要在.aggregate()
运算符中使用$cond管道操作。它将允许您基于条件指定您希望返回的内容,在您的情况下为Verified
字段。我不知道您的数据的结构,但我可以想象使用这样的方法:
$sum: { $cond: ["$Certifications.Verified", 1, 0] }
如果Verified
对于该证书为true,它将返回1
,该值将在$sum
运算符中说明。是否要使用$group运算符或$project之类的东西来创建此求和字段,将取决于您的偏好/用例。
答案 1 :(得分:0)
您可以使用它返回计数。
schemaName.find({Certifications.Verified : true}).count(function (error,count) {
console.log(count);
});
如果存在已验证的证书= true,则返回非零值(无文档满足条件) 否则返回0
答案 2 :(得分:0)
用RowID
替换表的任何键:
COUNTD(IIF([Certifications.Verified]=1, RowID, NULL))