簡體   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