Hive QL 检索最大值
Posted
技术标签:
【中文标题】Hive QL 检索最大值【英文标题】:Hive QL retrieve max value 【发布时间】:2021-12-29 02:35:31 【问题描述】:我正在尝试使用 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
我仍然得到与我的输出相同的表
【问题讨论】:
HiveQL SQL Server - 请更正您的标签。 根据问题指南,请展示您的尝试并告诉我们您发现了什么(在本网站或其他地方)以及为什么它不能满足您的需求。 请提供您想要的结果。 我建议研究group by
。
好的,让我检查一下,谢谢 Dale
【参考方案1】:
select c.JOB, max(c.time_stamp) from test1229 c join (select * from test1229) d on d.JOB = c.JOB where c.time_stamp > d.time_stamp group by c.JOB
【讨论】:
【参考方案2】:您必须按组子句中的选择 P>添加
select
JOB,
start_time,
max(time_stamp)
from table_1
group by JOB, start_time
这样一来,你为每个不同的对工作/ START_TIME最大(TIME-STAMP)从你的记录。 P>
记住的是,如果将JOB_A在另一个START_TIME重新开始,将有第二行与JOB_A和其相应的新的start_time和TIME_STAMP值。 P>
【讨论】:
以上是关于Hive QL 检索最大值的主要内容,如果未能解决你的问题,请参考以下文章
SparkSQL 错误:org.apache.hadoop.hive.ql.metadata.HiveException:无法实例化 org.apache.hadoop.hive.ql.metadat
什么是 Hive:从 org.apache.hadoop.hive.ql.exec.MapRedTask 返回代码 2
Hive 查询错误 java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException
Spark saveAsTable append 将数据保存到 hive 但抛出错误:org.apache.hadoop.hive.ql.metadata.Hive.alterTable
从 spark(2.11) 数据帧写入 hive 分区表时出现 org.apache.hadoop.hive.ql.metadata.Hive.loadDynamicPartitions 异常