【问题标题】:Tableau – Using Nested Aggregations to Establish a Weekday/Hour BaselineTableau – 使用嵌套聚合建立工作日/小时基线
【发布时间】:2015-10-07 16:55:34
【问题描述】:

背景信息:我们有一个事件时间跟踪器,用于跟踪每个用户在解决问题之前与代表相处的时间。我们想要确定每小时处理的平均事件量。换句话说:我们希望获得一周中每一天的每小时基线,这将向我们显示特定时间段内的平均总通话时长。例如:我们希望对数据库中所有周的周一上午 9 点到上午 10 点的每个呼叫的总时长进行平均,对于其他小时间隔也是如此。

想到这一点的最简单方法是我想要特定时间段的 AVG(SUM),但 Tableau 不允许我这样做。

Tableau 输出: 这是我希望从 Tableau 中寻找的目标可视化。

SQL 查询: 我编写了一个返回答案的 SQL 查询:

我们正在查看两列:start_time(时间戳)和interval_seconds(float)

在内部查询中,我使用了将日期/时间值截断为小时开始的 hour_start 函数,因此我可以在外部查询中按小时和星期几进行分组。

SQL 结果:

问题: 有没有办法在 Tableau 中完全解决这个问题,让我得到我正在寻找的结果,而无需编写任何 SQL 代码?

存储在云端硬盘上的文件

CSV 文件: https://drive.google.com/open?id=0B4nMLxIVTDc7NEtqWlpHdVozRXc

Tableau 工作表: https://drive.google.com/open?id=0B4nMLxIVTDc7M3A4Q0JxbGdlTE0

【问题讨论】:

    标签: sql-server tableau-api


    【解决方案1】:

    您可以使用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 结果”有些不同。您提供的数据是否略有不同?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多