if-statement - Quicksight 根据其他列的条件计算不同的 ID
问题描述
我想根据另一列中的值计算一列中的唯一 ID。如果 TYPE 既是“A”又是“M”,则计算不同的 ID。
月 | ID | 类型 |
---|---|---|
2 | 1 | 一个 |
2 | 2 | 米 |
2 | 3 | 一个 |
2 | 3 | 米 |
2 | 4 | 米 |
2 | 4 | 米 |
2 | 5 | 一个 |
2 | 5 | 一个 |
上面的示例应该返回 1,因为 ID = 3 具有 TYPE 'A' 和 'M'。
干杯,A。
解决方案
制作计算字段:
distinctCountOver(TYPE,[ID],PRE_FILTER) -1
然后使用 ID 作为值和聚合设置为“计数不同”的 KPI 视觉对象,并为您的计算字段添加一个过滤器,其中“无聚合”和等于 1。
此计算的工作原理是,对于每个 ID 超过两行,例如 ID 6 有三行类型为 M、M 和 A,它将在结果中计为正数。
更新了对更新问题的回答
distinctCountOver(TYPE,[ID,MONTH],PRE_AGG) - 1
将其绘制为表格,截图如下,以 MONTH 作为组,ID(计数不同)作为值,对上述计算字段应用过滤器,用于无聚合、大于 0、排除空值。此答案将为您提供每个月中具有多个类型的不同 ID 总数。
请注意,我在上面的数据中添加了一个额外的 ID = 6,其中第 2 个月的 A,A 和第 3 个月的 A,M 并复制了上面的所有数据,但 MONTH = 3,这就是为什么你现在总共得到 2(不同) TYPE 与原始公式不同的 ID,以及表中 MONTH 2 和 3 中的 1 和 2。
在此屏幕截图中,原始答案在第一个框中,后续答案是右侧的表格。使用上述说明欢呼 Quicksight 的屏幕截图