繁体   English   中英

查询多个分区表

[英]Query multiple partitioned tables

我正在处理不同时间范围的分区表(快照):

第一个输入表:

案子 阶段 日期
一个 1 2022-08-01
1 2022-08-01
C 2 2022-08-01

第二个输入表:

案子 阶段 日期
一个 1 2022-08-03
2 2022-08-03
C 2 2022-08-03

第三个输入表:

案子 阶段 日期
一个 2 2022-08-04
2 2022-08-04
C 2 2022-08-04

预期结果:

案子 日期
2022-08-03
一个 2022-08-04

解释:我希望在第一次案件一个阶段转移到另一个阶段时获取 所以,

  1. B 从 2022 年 8 月 1 日 -> 2022 年 8 月 3 日从第 1 阶段转移到第 2 阶段,而其他 2 个案例 A 和 C 没有转移阶段。
  2. A 从 8 月 1 日 -> 8 月 4 日从第 1 阶段移动到第 2 阶段,因此它也在 output 中。

面临的挑战:每个案例都可以有不同的日期从第一阶段转移。因此第二个输入表不一定适用于所有案例。 例如 - 案例 A 于 8 月 4 日从阶段 1 移出 -> 阶段 2,这也将成为 output 的一部分。

尝试以下操作:

with unioned as (
SELECT * FROM t1 UNION ALL
SELECT * FROM t2 UNION ALL
SELECT * FROM t3
)

SELECT `Case`
  , min(date) as Date
from unioned
group by `Case`, Stage
qualify row_number() over (PARTITION BY `Case` ORDER BY Stage) = 2

它产生以下结果:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM