tableau-api - 如何计算画面中的连续状态?
问题描述
我有一个设备列表及其状态。我想要连续状态的计数。
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
有可能吗?
解决方案
有两种计算可以考虑数据记录的顺序:表计算和 SQL 分析(也称为窗口)查询。表计算在客户端执行 - 即由 Tableau 根据数据源返回的(聚合)查询结果执行。SQL 分析查询在服务器端执行 - 即由数据库服务器执行。这个事实有影响。
这两种类型的计算都需要了解一些关于它们如何有效使用的细节。两者都很有用,但比简单的记录级别计算字段稍微复杂一些。对于表计算,您必须了解分区和寻址(也称为计算使用)和排序。对于这个计算,PREVIOUS_VALUE() 函数可能很有价值,但请阅读文档并在一个简单的案例上进行测试。该函数很有用,但与大多数人从名称中假设的方式不完全相同。
由于表计算在客户端运行,因此如果您有非常大的数据集并且不需要将所有数据行获取到客户端,它们可能不是最佳选择。在这种情况下,使用自定义 SQL 调用分析查询可能会执行得更好。
LOD 计算不能解决数据行顺序影响结果的问题。
推荐阅读
- spring - 我无法在spring mvc中将不同的url映射到同一个控制器
- html - 如何缩放我的 .svg 以填充整个视口?
- javascript - 在特定 div 中移动 div 并在某些断点处再次返回
- java - 为同时状态更改请求验证 CSRF 令牌
- ruby - 如何独立于规范助手运行 RSpec?
- ios - 快速的firebase聊天对话
- apache-spark - apache spark(V. 2.1) 流式传输 java
- dart - 在颤振中使用新关键字
- scala - zipWithIndex 和过滤器在输出中产生“Vector”字符串
- sql - 根据特定列连接/合并来自两个不相关表的记录