背景信息:我们有一个事件时间跟踪器,可跟踪每个用户在关闭问题之前花费多长时间与代表合作。我们希望确定每小时处理的事件的平均数量。换句话说:我们希望得到一周中每天的每小时基线,这将显示特定时间段内的平均总呼叫长度。例如:我们希望在星期一上午9点到10点之间平均每个呼叫的总长度,在数据库中的所有星期,以及其他每小时间隔的平均值。
最简单的思考方式是我想要特定时间段的AVG(SUM),但Tableau不允许我这样做。
Tableau输出: 这是我从Tableau寻找的目标可视化目标。
SQL查询: 我编写了一个返回答案的SQL查询:
我们正在查看两列:start_time(时间戳)和interval_seconds(float)
在内部查询中,我使用hour_start函数将日期/时间值截断为小时开始,因此我可以按外部查询中的小时和星期几进行分组。
SQL结果:
问题: 有没有办法在Tableau中解决这个问题 ENTIRELY ,这样可以得到我想要的结果,而无需编写任何SQL代码?
存储在云端硬盘中的文件
CSV文件: https://drive.google.com/open?id=0B4nMLxIVTDc7NEtqWlpHdVozRXc
Tableau工作表: https://drive.google.com/open?id=0B4nMLxIVTDc7M3A4Q0JxbGdlTE0
答案 0 :(得分:2)
您可以使用Level of Detail expressions计算小时级别的SUM(interval_seconds),然后使用AVG计算您要查找的数字。
我创建了几个计算:
hour
定义为:DATETRUNC('hour',[start_time])
这应该等于你的hour_start(start_time)。
和interval_hours
定义为{FIXED [hour] : SUM([interval_seconds])/3600 }
这会计算截断到小时的每个start_time的聚合。
在此之后,您只需计算AVG(interval_hours)
并在视图中使用它。
我在dropbox中放了一个工作簿:https://www.dropbox.com/s/3hfvz8w529g9f46/Interval%20Time%20Baseline.twbx?dl=0
虽然图表与您的图表类似,但我提出的数字与" SQL结果"有些不同。你展示。您提供的数据是否略有不同?