【问题标题】:Extract the last specific value in hive提取 hive 中的最后一个特定值
【发布时间】:2020-01-13 14:54:50
【问题描述】:

我正在尝试提取 hive 表中的最后一个特定值。所以,这大概是我的桌子的样子:

id , date, statuts
1 ; 2020 ; complete;validate
2 ; 2020 ; invalidate;complete;validate
3 ; 2020 ; validate;incomplete;invalidate
4 ; 2020 ; invalidate;complete;invalidate
5 ; 2020 ; invalidate;complete;validate

我需要所有行,它们在“验证”上具有“statuts”的最后一个值,所以结果应该是:

id , date, statuts
1 ; 2020 ; complete;validate
2 ; 2020 ; invalidate;complete;validate
5 ; 2020 ; invalidate;complete;validate

我试过这个查询,但它不起作用:

select * from table where statuts='validate' ;

提前感谢您的帮助!

【问题讨论】:

    标签: sql hive


    【解决方案1】:

    这是你想要的吗?

    select * from table where statuts like '%;validate' ;
    

    这会过滤statuts';validate'结尾的记录。

    如果statuts 可能只包含'validate'(之前没有其他状态),那么您可以进行字符串连接(虽然效率较低):

    select * from table where ';' || statuts like '%;validate' ;
    

    【讨论】:

      【解决方案2】:

      你可以使用like:

      select *
      from table
      where statuts like '%;validate' 
      

      【讨论】:

        猜你喜欢
        • 2021-12-30
        • 1970-01-01
        • 1970-01-01
        • 2023-01-25
        • 2021-11-28
        • 2015-09-17
        • 1970-01-01
        • 2019-03-29
        • 1970-01-01
        相关资源
        最近更新 更多