我有一个看起来像这样的查询
select max(mytime), type, id from my table where id = 1
group by id, type
这给我的结果类似于
time type id
2018-01-01 green 1
2017-01-03 blue 1
2017-03-03 red 1
我希望基于最大值将类型设置为相同。因此,在这种情况下,将花费所有相似ID的最长时间,然后为所有条目复制该类型。看起来应该像
time type id
2018-01-01 green 1
2017-01-03 green 1
2017-03-03 green 1
答案 0 :(得分:0)
Hive支持first_value()
窗口功能,因此您可以执行以下操作:
select distinct max(mytime) over (partition by id, type) as mytime,
first_value(type) over (order by max(mytime) desc) as type,
id
from my table
where id = 1
group by id, type;
但是,这似乎真的很奇怪。您为什么要摆脱原始类型?
答案 1 :(得分:0)
您可以使用子查询尝试以下方式
select t1.time,(select type from mytable where mytime= (select max(mytime) from mytable
where id = 1) ) as type,id
(
select max(mytime) as time , type, id from mytable
where id = 1
group by id, type
) t1