我被要求查看事件的响应和解决时间。不幸的是,我们现有的工具在这方面没有帮助。以下是2张门票的数据摘录:
y = foreach x generate CONCAT('00',(chararray)val1);
该工具仅表示票证不在SLA中,这归因于团队关闭票证,即使他们不是负责延迟的人。
理想情况下,我正在尝试为RowTotal旁边的每个事件获取一个正在运行的总列:
Incident_Id | Status |Begin_Time |End_Time | RowTotal
------------|------------------|------------------|------------------|--------
IM3415346 | Open | 10/03/2017 11:20 | 10/03/2017 11:33 | 787
IM3415346 | Work In Progress | 10/03/2017 11:33 | 10/03/2017 11:55 | 1325
IM3415346 | Work In Progress | 10/03/2017 11:55 | 10/03/2017 13:20 | 5099
IM3415346 | Work In Progress | 10/03/2017 13:20 | 10/03/2017 13:56 | 2133
IM3415346 | Closed | 10/03/2017 13:56 | 10/03/2017 13:56 | 0
IM3415483 | Open | 10/03/2017 12:30 | 10/03/2017 12:39 | 530
IM3415483 | Work In Progress | 10/03/2017 12:39 | 10/03/2017 12:53 | 848
IM3415483 | Work In Progress | 10/03/2017 12:53 | 10/03/2017 14:10 | 4579
IM3415483 | Work In Progress | 10/03/2017 14:10 | 10/03/2017 14:30 | 1199
IM3415483 | Work In Progress | 10/03/2017 14:30 | 10/03/2017 16:55 | 8700
IM3415483 | Closed | 10/03/2017 16:55 | 10/03/2017 16:55 | 0
我已经看到如何使累积总数依次累计每个事件......
RowTotal | RunningTotal |
---------|--------------|
787 | 786 |
1325 | 2111 |
5099 | 7210 |
2133 | 9343 |
0 | 9343 |
530 | 530 |
848 | 1377 |
4579 | 5956 |
1199 | 7155 |
8700 | 15855 |
0 | 15855 |
但我真的在努力应对这种全面的方法。有没有人可能曾经遇到过这个问题?
答案 0 :(得分:0)
我无法在提供的数据中看到TotalSeconds
,因此我只是使用RowTotal
来说明。请随意更改以适应您的确切用例。
RunningTotal =
CALCULATE(
SUM(Query[RowTotal]),
FILTER(
Query,
Query[Incident_Id] = EARLIER(Query[Incident_Id]) &&
Query[Begin_Time] <= EARLIER(Query[Begin_Time])
)
)
您错过了FILTER
函数,以使行上下文正常工作。您还需要在Begin_Time
上添加一个过滤器,以便它只会记录上一次记录的时间,而不是事件中的所有行。
取决于您可能需要在Status
或End_Time
上添加过滤器的业务逻辑,但这超出了讨论范围。
结果: