我有一个由类似这样的东西组成的数据集
id<String>, date<Date>, status<String>
充满了这样的数据:
+-------+------------------+----------------+
| id | date | status |
+-------|------------------|----------------+
| 1 | 25/05/2020 10:30 | OPEN |
+-------|------------------|----------------+
| 2 | 25/05/2020 10:31 | OPEN |
+-------|------------------|----------------+
| 3 | 25/05/2020 10:32 | OPEN |
+-------|------------------|----------------+
| 1 | 25/05/2020 12:30 | CLOSED |
+-------+------------------+----------------+
我想要一个显示状态计数的视觉效果,但只获取每个 id 的实际状态,在此示例中,视觉效果应由以下数据形成:
+-------+------------------+----------------+
| id | date | status |
+-------|------------------|----------------+
| 2 | 25/05/2020 10:31 | OPEN |
+-------|------------------|----------------+
| 3 | 25/05/2020 10:32 | OPEN |
+-------|------------------|----------------+
| 1 | 25/05/2020 12:30 | CLOSED |
+-------+------------------+----------------+
我尝试使用 ID 的不同计数,但它显示 3 个打开和 1 个关闭,我需要一个 2 个打开 1 个关闭结果。
我还尝试使用 TOP 或 Botton 选项制作日期过滤器,但这会将数据过滤到具有更多记录的日期..
那么,有什么办法可以做到这一点吗?
提前致谢。
好的,6个月后我可以自己回复。
我所做的是 ifElse 与日期的 maxOver 结合,在 else 中为 true 或 null 时获取状态。
ifelse(Date=maxOver(Date,[id],PRE_FILTER),status,null)
您还可以在视觉对象上添加过滤器,为要过滤的字段指定“顶部和底部”选项,选择要显示的顶部/底部值的数量,然后按 MAX 聚合。
ifelse(maxIf({date}, {status} = "OPEN") = max({date}), "OPEN", "CLOSED")