Hive SQL を使用して、列 a - 列 b の絶対値を見つけます。指定された配列内で最も近い値はどれですか?

序文

最近、興味深い要件に遭遇したので、それを共有したいと思います。より良い解決策がある場合は、コメント領域にメッセージを残してください。

要件の説明

テーブル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 

おすすめ

転載: blog.csdn.net/u011109589/article/details/132666045