Hive QL 检索最大值
Hive QL retrieve max value
我正在尝试使用 Hive QL 从数据库中检索数据。我有 2 列 start_time 具有开始时间和 time_stamp 记录了从 'Start_time'
开始完成的每项工作
JOB start_time work_done time_stamp
-------------------------------------------------------------------------
JOB_A 2021/12/29 11:00:00 work_A 2021/12/29 11:00:00
JOB_A 2021/12/29 11:00:00 work_A 2021/12/29 11:20:00
JOB_A 2021/12/29 11:00:00 work_B 2021/12/29 11:45:00
JOB_B 2021/12/29 11:00:00 work_A 2021/12/29 12:00:00
JOB_B 2021/12/29 11:00:00 work_A 2021/12/29 12:15:00
JOB_B 2021/12/29 11:00:00 work_B 2021/12/29 12:30:00
我想要的是JOB_A的start_time和JOB_A和JOB_B结束的time_stamp
JOB start_time time_stamp
------------------------------------------------------------
JOB_A 2021/12/29 11:00:00 2021/12/29 11:45:00
JOB_B 2021/12/29 11:00:00 2021/12/29 12:30:00
我尝试使用
select
JOB,
start_time,
max(time_stamp)
from table_1
我仍然得到与我的输出table相同的结果
select c.JOB, max(c.time_stamp) 来自 test1229 c
join (select * from test1229) d on d.JOB = c.JOB where c.time_stamp > d.time_stamp group by c.JOB
您必须在 select
中添加分组依据子句
select
JOB,
start_time,
max(time_stamp)
from table_1
group by JOB, start_time
通过这种方式,您可以从记录中为每对不同的 JOB/Start_time 获取最大值(time_stamp)。
请记住,如果 JOB_A 将再次从另一个 start_time 开始,将会有第二行 JOB_A 及其各自的新 start_time 和 time_stamp 值。
我正在尝试使用 Hive QL 从数据库中检索数据。我有 2 列 start_time 具有开始时间和 time_stamp 记录了从 'Start_time'
开始完成的每项工作JOB start_time work_done time_stamp
-------------------------------------------------------------------------
JOB_A 2021/12/29 11:00:00 work_A 2021/12/29 11:00:00
JOB_A 2021/12/29 11:00:00 work_A 2021/12/29 11:20:00
JOB_A 2021/12/29 11:00:00 work_B 2021/12/29 11:45:00
JOB_B 2021/12/29 11:00:00 work_A 2021/12/29 12:00:00
JOB_B 2021/12/29 11:00:00 work_A 2021/12/29 12:15:00
JOB_B 2021/12/29 11:00:00 work_B 2021/12/29 12:30:00
我想要的是JOB_A的start_time和JOB_A和JOB_B结束的time_stamp
JOB start_time time_stamp
------------------------------------------------------------
JOB_A 2021/12/29 11:00:00 2021/12/29 11:45:00
JOB_B 2021/12/29 11:00:00 2021/12/29 12:30:00
我尝试使用
select
JOB,
start_time,
max(time_stamp)
from table_1
我仍然得到与我的输出table相同的结果
select c.JOB, max(c.time_stamp) 来自 test1229 c join (select * from test1229) d on d.JOB = c.JOB where c.time_stamp > d.time_stamp group by c.JOB
您必须在 select
中添加分组依据子句select
JOB,
start_time,
max(time_stamp)
from table_1
group by JOB, start_time
通过这种方式,您可以从记录中为每对不同的 JOB/Start_time 获取最大值(time_stamp)。
请记住,如果 JOB_A 将再次从另一个 start_time 开始,将会有第二行 JOB_A 及其各自的新 start_time 和 time_stamp 值。