序文
最近、興味深い要件に遭遇したので、それを共有したいと思います。より良い解決策がある場合は、コメント領域にメッセージを残してください。
要件の説明
テーブルtest
には 2date
種類のフィールドがあります: h_dt
(保持日) とd_dt
(有効期限)、日によって分割されたパーティション フィールドは 、p_dt
指定された配列はa = [0, 0.08, 0.17, 0.25, 0.5, 0.75, 1, 2, 3, 4, 5, 7, 10, 15, 20, 30, 40, 50]
、(d_dt - h_dt) / 365
は残りの年数で、配列内の距離を求めます。 . 年単位の最新の値。
解決
1. 配列を関連付け可能なテーブルに変換します。
lateral view outer explode
ここでは主に、配列内のデータを関連付けた後、データの行を複数の行に拡張するために使用されます。
with temp as (
select p_dt, num
from