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
- machine_id是该行中受问题影响的机器的id
- start_timestamp 是 Date/time 表示问题何时开始
- 停机时间(秒) 是机器因该行中的问题而停机的总时间(以秒为单位)
我想作为 'measure' 计算的是,对于每台特定机器和特定时间段,没有重叠值的总停机时间。这意味着,如果在特定时间内已经存在导致停机的问题,则不应在计算中添加(或最终部分添加)重叠的新问题的存在。
例如,对于 machine_id = 1,介于 10/10/2021 7:00:00AM 和 10/10/2021 7:10:00AM我将获得 100 + 240 = 340 秒的总停机时间。
你能帮帮我吗?我尝试了很多方法都没有成功。如果我需要澄清任何其他事情,请直接说。
谢谢!
我在之前的 PowerQuery 步骤中找到了一种方法。
使用 List.DateTimes 函数在 PowerQuery 中创建一个列。输入是 start_timestamp,停机时间,
= Table.AddColumn(#"Inserted Date", "Custom", each List.DateTimes([start_timestamp],[#"downtime (sec.)"],#duration(0,0, 0,1)))
展开该列。这将为每个停机时间创建一个寄存器。
创建一个新列,将 machine_id 和新创建的列与停机时间连接起来。将其格式化为文本,我将其命名为 Time_and_Machine:
现在您应该有一个 table,其中每一行代表您机器的每个问题的每一秒。 Time_and_Machine 中会有重复项,您删除 powerquery 中的重复项,最后每一秒和每台机器都有问题的一行。
现在您可以返回 PowerBI 并创建一个简单计算行数的度量:
SecondsDown = Count(向下[machine_id]):
我在 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 |
- machine_id是该行中受问题影响的机器的id
- start_timestamp 是 Date/time 表示问题何时开始
- 停机时间(秒) 是机器因该行中的问题而停机的总时间(以秒为单位)
我想作为 'measure' 计算的是,对于每台特定机器和特定时间段,没有重叠值的总停机时间。这意味着,如果在特定时间内已经存在导致停机的问题,则不应在计算中添加(或最终部分添加)重叠的新问题的存在。
例如,对于 machine_id = 1,介于 10/10/2021 7:00:00AM 和 10/10/2021 7:10:00AM我将获得 100 + 240 = 340 秒的总停机时间。
你能帮帮我吗?我尝试了很多方法都没有成功。如果我需要澄清任何其他事情,请直接说。
谢谢!
我在之前的 PowerQuery 步骤中找到了一种方法。
使用 List.DateTimes 函数在 PowerQuery 中创建一个列。输入是 start_timestamp,停机时间, = Table.AddColumn(#"Inserted Date", "Custom", each List.DateTimes([start_timestamp],[#"downtime (sec.)"],#duration(0,0, 0,1)))
展开该列。这将为每个停机时间创建一个寄存器。
创建一个新列,将 machine_id 和新创建的列与停机时间连接起来。将其格式化为文本,我将其命名为 Time_and_Machine:
现在您应该有一个 table,其中每一行代表您机器的每个问题的每一秒。 Time_and_Machine 中会有重复项,您删除 powerquery 中的重复项,最后每一秒和每台机器都有问题的一行。
现在您可以返回 PowerBI 并创建一个简单计算行数的度量: SecondsDown = Count(向下[machine_id]):