gpt4 book ai didi

tableau-api - Tableau 计算日期差异

转载 作者:行者123 更新时间:2023-12-02 10:41:44 28 4
gpt4 key购买 nike

我正在处理一些销售数据,每笔交易都有多个阶段。说阶段 A、B、C、D...

在完美的世界中,每笔交易都需要进入每个阶段,我想计算交易在每个阶段停留的差异。

假设数据可能如下所示:

transaction_id    stage    updated_date
1 A 2015-01-01
1 B 2015-01-02
1 C 2015-01-05
1 D 2015-01-06

我想要这样的东西:

transaction_id    stage    time_spent
1 AB 1 day
1 BC 3 days
1 CD 1 day

然后我将能够分析每个阶段花费的时间并查看直方图或分布。然而,我唯一能找到的是函数 datediff

谁能告诉我如何在 Tableau 中实现这一目标?

最佳答案

您可以尝试使用 LOOKUP() 使用分区前一行中的日期来计算持续时间:

DATEDIFF('day', LOOKUP(ATTR([Updated Date]), -1), ATTR([Updated Date]))

然后要获取“AB”标签,请再次使用 LOOKUP() 从上一行中获取它:

LOOKUP(ATTR([stage]), -1) + ATTR([stage])

要使用字段制作直方图,您可以将 [stage] 拖到列中,然后拖拽 [stage label] (或者您选择调用第二个计算的任何内容)我们制作的字段)。将[duration](我们创建的第一个字段)拖到行中。然后右键单击图表中的“A”并单击“隐藏”。隐藏它而不是过滤掉它很重要,因为它仍然需要位于您的分区中才能使表计算正常工作!然后右键单击“列”卡中的[stage] 药丸并取消选中“显示标题”。

需要注意的是,如果您的数据中不存在阶段 C(例如),那么您的直方图中最终会出现“BD”,因此希望您的数据是原始的。

警告 - 使用 Lookup() 等表计算的一项成本是它们仅对聚合查询结果进行操作,这意味着必须将所有相关数据行从数据库提取到 Tableau 客户端或服务器。因此,如果您有大量数据并且只想显示摘要结果,例如完成每个阶段的最短/平均/最大时间,那么表格计算可能是获取这些摘要度量的一种昂贵且复杂的方法。

另一种方法是 reshape 数据并使用行级计算、聚合计算或 LOD 计算 - 所有这些都可以由源数据库执行。这通常也更易于管理。

关于tableau-api - Tableau 计算日期差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32660628/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com