tableau-api - 包含多个日期计算的 Tableau 表
问题描述
我有一张包含有效和到期日期的政策表。我想知道每个月有多少政策生效。
原始表
id, effective_date, expiration_date
1, 2020-01-01, 2020-06-01
2, 2020-02-01, 2020-07-01
3, 2020-03-01, 2020-08-01
4, 2020-04-01, 2020-09-01
5, 2020-04-01, 2020-09-01
理想输出
Month, Count
Jan, 1
Feb, 2
March, 3
April, 5
May, 5
June, 5
July, 4
August, 3
Sept, 2
我在想我可以做如下的事情
Effective_Count
RUNNING_COUNT(COUNT([policies]))
过期_计数
RUNNING_COUNT(COUNT(
IF(policy.expiration_date < RowMonth)
THEN 1
ELSE 0
END
))
然后 policy_in_effect 将只是
Effective_Count - Expired_Count
我无法获得 RowMonth 值。
解决方案
旋转会有所帮助。还有一件事,即使保单在当月的第一天到期,您也会认为这些保单在当天是有效的,因此您必须在到期月份添加一天。
步骤 1:在数据选项卡中,选择两个日期字段并选择pivot
根据您的喜好重命名这两个字段。然后添加一个计算字段以将额外的日/月添加为DATEADD('month', 1, [Date])
. 然后用 . 添加另一个 calc 字段IF THEN ELSE condition
。
If [Event] = 'effective_date' then 1 else -1 END
在行上添加 calcF 1 -> 右键单击选择月份 -> 将其更改为离散 -> 再次右键单击并检查显示缺失值
在文本标记上添加 calc F2 --> 右键单击 --> 添加表格计算 --> 像这样编辑运行总计
这会给你你想要的结果
推荐阅读
- javascript - 对 Array.prototype.reduce 的 polyfill 感到困惑
- javascript - 为什么按名称删除项目的方法不起作用?
- python - PyCharm virtualenv 找不到正确的 python 二进制文件
- z3 - 使用 SMTLib for z3 的 Datalog 中的循环关系
- sql - 如何在oracle中按结果对两组求和
- java - 为什么我收到 javax.net.ssl.SSLException: Received fatal alert:protocol_version for ant?
- hive - 确定在 72 小时内至少在七个不同地点进行过交易的客户——Hive
- php - 将大数据从博主导入 WordPress
- java - Tomcat Websocket 禁用主机名验证
- python - 打开 CV cv.imread 修改图片