Tableau api 具有多个日期的表日期数学

Tableau api 具有多个日期的表日期数学,tableau-api,Tableau Api,我有一张保单表,上面有账号、生效日期、取消日期和到期日期。我想知道一个帐户有多长时间的有效策略 原始表格 id, account_id, effective_date, cancellation_date, expiration_date 1, a, 2020-01-01, null, 2020-06-01 2, b, 2020-02-01, null, 2020-07-01 3, b, 2020-03-01, null, 2020-08-01 4, a, 2020-04-01, null, 2

我有一张保单表,上面有账号、生效日期、取消日期和到期日期。我想知道一个帐户有多长时间的有效策略

原始表格

id, account_id, effective_date, cancellation_date, expiration_date
1, a, 2020-01-01, null, 2020-06-01
2, b, 2020-02-01, null, 2020-07-01
3, b, 2020-03-01, null, 2020-08-01
4, a, 2020-04-01, null, 2020-09-01
5, b, 2020-04-01, 2020-08-15, 2020-09-01
理想输出

account_id, active_date, inactive_date, active_time
a, 2020-01-01, 2020-09-01, 9 months
b, 2020-02-01, 2020-08-15, 7 months 15 days
到目前为止,我已经制作了一个表,它的左边列是account_id。然后我有
MIN(生效日期)
获取第一份保单的有效日期

然后我有
Policy\u Inactive\u Date=MIN(取消日期、到期日期)
。但这给了我第一份保单过期或取消的时间

感觉上我需要做MAX(Policy_Inactive_Date),但这会抛出错误

我想知道我是否首先需要在策略级别获取策略非活动日期,然后在帐户级别获取最大值。

尝试
max(最小值(取消日期、到期日期))

有两种形式的MIN()--和两种形式的MAX()。对于一个参数,MIN()是一个聚合函数,为一组记录返回该参数的最小非空值。对于两个参数,MIN()计算每个参数并返回这两个值中的最小值。

这样做

活动\u dt
类似于此的字段

{
    Fixed [account_id]: MIN([effective_date])
}
{
    Fixed [account_id]:MAX(IF ISNULL(MIN([cancellation_date],[expiration_date])) then [expiration_date] else MIN([cancellation_date],[expiration_date]) END)
}
不活动\u dt
像这样

{
    Fixed [account_id]: MIN([effective_date])
}
{
    Fixed [account_id]:MAX(IF ISNULL(MIN([cancellation_date],[expiration_date])) then [expiration_date] else MIN([cancellation_date],[expiration_date]) END)
}

太棒了,谢谢你。我不知道
Fixed
。这将解决我的许多问题!