Hive 配置单元查询以获取插入表中的最后一条记录

Hive 配置单元查询以获取插入表中的最后一条记录,hive,hiveql,Hive,Hiveql,我正试图找出一个配置单元查询,该查询获取插入到带有b的表中的最后一条记录。这些记录需要按时间列排序,并获取最后一条记录。在上述记录中 a date time b 35573407 20170412 140930 310260453908912 35573407 20170412 140930 310260453908912 35573407 20170

我正试图找出一个配置单元查询,该查询获取插入到带有b的表中的最后一条记录。这些记录需要按时间列排序,并获取最后一条记录。在上述记录中

 a                date             time         b
35573407        20170412        140930  310260453908912
35573407        20170412        140930  310260453908912
35573407        20170412        141054  310260453908912
35573407        20170412        025339  310260453908912
35573407        20170412        072918  310260453908912
35573407        20170412        091105  310260453908912
35573422        20170412        193605  310260453908912
35573407        20170412        121105  310260453908912
35573407        20170412        032439  310260453908912
35573407        20170412        032605  310260453908912
这是最后一张唱片

35573422  20170412  193605  310260453908912


请使用以下命令,因为它将更快,并且在我们使用WITH子句的情况下可应用于子查询下推

+----------+----------+--------+-----------------+
|   a      |   date   |  time  |      b          |
+----------+----------+--------+-----------------+
| 35573422 | 20170412 | 193605 | 310260453908912 |
+----------+----------+--------+-----------------+

不使用日期/时间戳类型或者至少不使用ISO数据/时间戳格式(如果出于某种原因您使用的是非常旧的配置单元版本),这是一种非常糟糕的做法
+----------+----------+--------+-----------------+
|   a      |   date   |  time  |      b          |
+----------+----------+--------+-----------------+
| 35573422 | 20170412 | 193605 | 310260453908912 |
+----------+----------+--------+-----------------+
select  t.group_col, t.struct_val.col1 as date, t.struct_val.col2 as time
from (select  group_col, max(struct(date,time)) as struct_val from mytable ) t