【问题标题】:Use select query to add values to a hive column使用选择查询将值添加到配置单元列
【发布时间】:2020-10-30 09:29:05
【问题描述】:

我有一个蜂巢表 AAA,它有 5 列,比如 A、B、C、D、E。我想在 AAA 中添加一列 F,这样 F 的所有行都应该包含 E 的最大值。 示例:

表 AAA

A|B|C|D|E 
__________
1|2|3|4|5
2|3|4|5|6
3|4|5|6|7

将 F 列添加到 AAA。决赛桌应该有这样的东西。

A|B|C|D|E|F 
___________
1|2|3|4|5|7 
2|3|4|5|6|7 
3|4|5|6|7|7 

【问题讨论】:

    标签: sql hive max hiveql sql-view


    【解决方案1】:

    你可以使用窗口函数:

    select t.*, max(e) over() as f
    from aaa t
    

    我不建议存储这些派生信息,因为它很难维护(只要任何行上的 e 值发生更改,那么您可能需要重新计算 while f 列)。

    另一种方法是创建一个视图:

    create view v_aaa as
    select t.*, max(e) over() as f
    from aaa t
    

    【讨论】:

    • 实际上 AAA 表中的列具有多种数据类型。所以不可能取最大的。 E 列有一个日期字段,我希望该日期字段的最大值作为 F 列值。
    猜你喜欢
    • 1970-01-01
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多