配置单元日期比较

wsxa1bj1  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(309)

我在配置单元表中有以下列。所有列都是数据类型 string . 每一行都是不同的,因为另一列(7或8多列)的值中至少有一个唯一的值。我想编写一个配置单元查询来选择 datetime >= 2017-05 把记录放在哪里 datetime < 2017-05 . 这里的输出应该是 orderid - 101, 102, 103 . 所有记录
orderid 100 应该放弃。注:orderid 100有1条datetime>2017-05的记录。尽管如此,它还是应该被删除,因为它至少有一个datetime<2017-05的记录。orderid可以是任何12-16位数字。这个表有数十亿条记录。
有人能帮我写一个Hive查询吗?提前谢谢。

datetime            orderid     other columns
2017-04-30 17:10:05 100 
2017-03-05 12:25:30 100 
2017-05-09 08:18:44 100 
2017-05-15 04:21:43 101 
2017-06-20 11:20:10 101 
2017-05-22 05:09:35 102 
2017-07-01 06:25:30 102 
2017-06-25 08:24:40 103 
2017-05-11 11:50:49 103

输出结果:

datetime            orderid     other columns

2017-05-15 04:21:43    101 
2017-06-20 11:20:10    101 
2017-05-22 05:09:35    102 
2017-07-01 06:25:30    102 
2017-06-25 08:24:40    103 
2017-05-11 11:50:49    103
owfi6suc

owfi6suc1#

select  *

from   (select  *
               ,min(datetime) over (partition by  orderid) as min_datetime  

        from    mytable
        ) t

where   min_datetime >= '2017-05'
;
owfi6suc

owfi6suc2#

select*from(select min(datetime)as date\u time,orderid from mytable group by orderid)t其中date\u time>='2017-05%';

相关问题