如何按特定列删除 Power BI 分组中的重复项?

How to remove duplicates in power BI grouping by a particular column?

我有以下方式的数据集:

我想删除每个 'id' 的重复时间戳,这样对于每个时间戳,'revision' 的值是最高的,即最终数据集应该如下所示:

我想在 Power BI 的查询编辑器中执行此操作。我已经尝试为一个特定的 'id' 这样做并且它有效。我选择了 id=1001,然后我按 降序 对修订进行排序,并在 table 中添加了一个 索引列 。然后我在时间戳列上应用了“删除重复项”。此过程适用于 'id' 的一个值。我想为每个 id 单独执行此操作,这样我的每个时间戳只对任何特定的 'id'.

出现一次

我该怎么做?

在高级查询中,您可以使用“分组依据”功能,稍加修改即可完成此操作。这是您需要添加的步骤:

= Table.Group(#"Previous Step", {"timestamp", "id"}, {{"revision", each List.Max([revision]), type nullable number}, {"value", each Table.Max(_, "revision")[value]}})

这实际上是告诉 power query 对每个时间戳和 id 组合采用最高修订,并且 return 相应的值。

这里有一个详细的博客post,说明这段代码是如何工作的:https://www.ehansalytics.com/blog/2020/7/16/return-row-based-on-max-value-from-one-column-when-grouping

排序后结果如下:

我在查询编辑器中解决了这个问题。诀窍是 select 一次多列,同时删除重复项。因此,我 select 编辑了 'id' 和 'timestamp',然后应用了 'remove duplicates'。这里,[1001 2022-05-02] 将与 [1002 2022-05-02] 不同,因此它会一次性删除不同 id 的重复时间戳。