我有一张有两列日期的表 next_start_date
及 cancel_date
.
团体ID个人ID取消日期下一个日期取消后开始日期10012017-11-062014-03-26100112017-11-062017-01-0910012017-11-062018-04-1620012018-06-042014-03-2620012018-06-042017-01-0920012018-06-042018-04-1620012018-08-282014-03-2620012018-08-282017-01-0920012018-282018-16
期望输出: days_customer_came_back
是一个计算列:
团体ID个人ID取消日期下一个日期开始日期取消后的日期客户返回10012017-11-062018-04-1616120012018-06-04nullnull20012018-08-28NullNullNullNull
我想比较一下这两个专栏 cancel_date
及 next_start_date_after_cancel
这个 next_start_date_after_cancel
必须在 cancel_date
以便我们获得这些日期之间的正日差。
如果对同一个项目有多个“下一个\u开始\u日期\u取消后” cancel_date
,我们只保留第一个最小值,而忽略其他值。
此外,如果要输入 cancel_date
如果所有可用的 next_start_date_after_cancel
如果在取消日期之前,我们将替换它,它将为空,并且日差将输出为空
请帮忙。。。
1条答案
按热度按时间9nvpjoqh1#
使用
FILTER
排除cancel_date
大于next_start_date_after_cancel
,获取min()
它在子查询或cte中的值。最后减去这两个日期,得到不同的天数:演示:
db<>fiddle