【发布时间】:2021-08-11 03:39:08
【问题描述】:
我知道我必须在此查询中使用 CONNECT BY PRIOR,但我不确定如何实现它。
我们有购买每月订阅的客户,这些客户每月都会自动续订。我们有一个日志表,可以显示您当前的订单 ID 是什么,以及您之前的订单 ID 是什么。所以,表记录可能是这样的:
CUSTOMER ID: 1 ORDER ID: 123 PREV_ORDER_ID: STATUS: Complete
CUSTOMER ID: 1 ORDER ID: 456 PREV_ORDER_ID: 123 STATUS: Complete
CUSTOMER ID: 1 ORDER ID: 789 PREV_ORDER_ID: 456 STATUS: Complete
CUSTOMER ID: 1 ORDER ID: 888 PREV_ORDER_ID: 789 STATUS: Complete
CUSTOMER ID: 1 ORDER ID: 999 PREV_ORDER_ID: 888 STATUS: Active
我正在计算有多少客户连续订阅了至少 13 个月,与最近一次订阅没有间隔的客户将处于“有效”状态。如果订阅中断,则 PREV_ORDER_ID 将为 NULL。
希望在查询中执行此操作,而不必为其编写匿名块。
非常感谢!
【问题讨论】:
标签: oracle connect hierarchical