在某个时间点的事件队列的卷

时间:2015-05-12 17:56:05

标签: tableau

我有一个事件队列,包括记录号字符串,打开时间 - 日期时间和关闭时间 - 日期时间。记录可追溯到一年左右。我想要得到的是一个线图,显示每天晚上8点的队列量。因此,如果在当天晚上8点之前或前一天的任何时间打开机票,但在8点之前没有关闭,则应该包含在人口中。

我尝试了以下内容,但这不起作用,因为它并没有真正考虑到多天。

If DATEPART('hour',[CloseTimeActual])>18 AND DATEPART('minute',[CloseTimeActual])>=0 AND DATEPART('hour',[OpenTimeActual])<=18 THEN 1
ELSE 0
END

之前有没有人处理过这个问题?我使用的是Tableau 8.2,由于公司许可证尚未使用9,所以请仅提出8.2解决方案。提前谢谢。

1 个答案:

答案 0 :(得分:1)

要跟踪状态更改的历史记录,最简单的方法是重新整形数据,以便每行代表事件状态的更改。因此会有一行代表每个事件的创建,一行代表彼此的状态变化,比如赋值,分辨率,取消等。你可能希望列代表事件编号,状态变化的日期和状态变化的类型

然后,您可以编写一个返回+1,-1或0的计算字段,以表示状态更改如何影响当前打开的事件数。然后使用运行总计来查看在给定时间打开的总数。

如果状态变化很少,您可能需要显示缺少的日期值或添加填充。对于其他分析问题,使用每个事件一条记录来构建数据可能更方便。为避免重复,您可能希望使用数据库视图或带有UNION ALL子句的自定义SQL来允许同一底层数据库表的两个视图。

能够填写“我的数据集中的每条记录恰好代表一个_________”的空白总是一个好主意

Tableau 9在数据连接窗格中具有一些重塑功能,或者您可以预处理数据或在数据库中创建视图以重新整形。或者,您可以在Tableau中指定具有一些计算字段的Union(或类似的带有UNION ALL子句的自定义SQL)。这是一个简短的说明:

select open_date as Date,
       "OPEN" as Action,
       1 as Queue_Change,
       <other columns if desired>
from incidents
UNION ALL
select close_date as Date,
       "CLOSE" as Action,
       -1 as Queue_Change,
       <other columns if desired>
from incidents
where close_date is not null

现在,您可以使用SUM(Queue_Change)的运行总和来查看一段时间内打开的事件数。如果您有其他列,如优先级,部门,类型等,您可以像往常一样在Tableau中过滤和分组。此数据源可以是您之前的数据源。您没有工作簿中每个工作表的单一数据视图。有时,您需要在不同的详细级别或透视图中与相同数据建立几个不同的连接。