首页 > 解决方案 > 如何计算画面中的连续状态?

问题描述

我有一个设备列表及其状态。我想要连续状态的计数。

Equipment WO   Date.       Status
A.        101. 01/jan/2021 Pass
A.        102. 01/feb/2021 Pass
A.        103. 01/mar/2021 Fail
A.        104. 01/apr/2021 Fail
A.        105. 01/may/2021 Fail
A.        106. 01/jun/2021 Pass

预期产出

Consecutive Statuses 
2
2
3
3
3
1

有可能吗?

标签: tableau-api

解决方案


有两种计算可以考虑数据记录的顺序:表计算和 SQL 分析(也称为窗口)查询。表计算在客户端执行 - 即由 Tableau 根据数据源返回的(聚合)查询结果执行。SQL 分析查询在服务器端执行 - 即由数据库服务器执行。这个事实有影响。

这两种类型的计算都需要了解一些关于它们如何有效使用的细节。两者都很有用,但比简单的记录级别计算字段稍微复杂一些。对于表计算,您必须了解分区和寻址(也称为计算使用)和排序。对于这个计算,PREVIOUS_VALUE() 函数可能很有价值,但请阅读文档并在一个简单的案例上进行测试。该函数很有用,但与大多数人从名称中假设的方式不完全相同。

由于表计算在客户端运行,因此如果您有非常大的数据集并且不需要将所有数据行获取到客户端,它们可能不是最佳选择。在这种情况下,使用自定义 SQL 调用分析查询可能会执行得更好。

LOD 计算不能解决数据行顺序影响结果的问题。


推荐阅读