我有一些数据如下所示,其中相同的Id
在多行中重复,但Victory
值不同。
Id | 胜利 |
---|---|
1 | 错误 |
1 | 错误 |
1 | 真 |
2 | 错误 |
2 | 错误 |
2 | 真 |
3 | 错误 |
3 | 错误 |
3 | 错误 |
首先,确保您了解COUNT([Some-Column](的行为。它不会返回某列中具有TRUE或某列中为1的记录数。它返回[Some-Column]有值的记录数,任何值都可以。换句话说,它返回具有NON-NULL值的记录数。
这就是为什么你得到了比预期更高的结果。你期望COUNT以某种方式只计算Victory具有特定值的记录,在你的情况下为TRUE。就COUNT((而言,TRUE和FALSE是等价的。COUNT((只关心是否有一个值,而不是null。
有了这个重要的注释,我建议晚上不要在这种情况下使用COUNT((。表达式SUM(INT([Victory]))
将告诉您有多少行的值为True,表示字段Victory。该表达式之所以有效,是因为类型转换函数INT((将TRUE转换为1,将FALSE转换为0。
如果必须,可以将该表达式包装在LOD计算中,也可以将计算字段度量值定义为INT([Victory])
。将该字段放在某个工具架上,聚合函数默认为SUM((,并将ID放在另一个工具架中,您就会得到答案。
只有在你真正需要的时候才使用LOD。你有更大的灵活性,通常性能更好,而不使用LOD计算。