首页 > 解决方案 > 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。

标签: if-statementcountdistinctcalculated-fieldamazon-quicksight

解决方案


制作计算字段:

distinctCountOver(TYPE,[ID],PRE_FILTER) -1

然后使用 ID 作为值和聚合设置为“计数不同”的 KPI 视觉对象,并为您的计算字段添加一个过滤器,其中“无聚合”和等于 1。

使用上述说明的 Quicksight 屏幕截图

此计算的工作原理是,对于每个 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 的屏幕截图


推荐阅读