Power BI - 排除特定时期内重叠事件的持续时间

Power BI - exclude the duration of overlapping events within a specific period

我在 powerbi 中有一个 table,其中列出了导致特定机器停机的问题。 table的结构如下:

machine_id start_timestamp downtime (sec.)
1 10/10/2021 7:03:00 AM 100
1 10/10/2021 7:04:00 AM 30
1 10/10/2021 7:06:00 AM 300
2 10/10/2021 7:08:00 AM 20

我想作为 'measure' 计算的是,对于每台特定机器和特定时间段,没有重叠值的总停机时间。这意味着,如果在特定时间内已经存在导致停机的问题,则不应在计算中添加(或最终部分添加)重叠的新问题的存在。

例如,对于 machine_id = 1,介于 10/10/2021 7:00:00AM 和 10/10/2021 7:10:00AM我将获得 100 + 240 = 340 秒的总停机时间。

你能帮帮我吗?我尝试了很多方法都没有成功。如果我需要澄清任何其他事情,请直接说。

谢谢!

我在之前的 PowerQuery 步骤中找到了一种方法。

  1. 使用 List.DateTimes 函数在 PowerQuery 中创建一个列。输入是 start_timestamp,停机时间, = Table.AddColumn(#"Inserted Date", "Custom", each List.DateTimes([start_timestamp],[#"downtime (sec.)"],#duration(0,0, 0,1)))

  2. 展开该列。这将为每个停机时间创建一个寄存器。

  3. 创建一个新列,将 machine_id 和新创建的列与停机时间连接起来。将其格式化为文本,我将其命名为 Time_and_Machine:

现在您应该有一个 table,其中每一行代表您机器的每个问题的每一秒。 Time_and_Machine 中会有重复项,您删除 powerquery 中的重复项,最后每一秒和每台机器都有问题的一行。

现在您可以返回 PowerBI 并创建一个简单计算行数的度量: SecondsDown = Count(向下[machine_id]):