MIN / MAX用于字符串?

时间:2014-02-12 14:59:16

标签: sql hive

我可以这样做:

create table newdata as
select id, min(timestamp) as time_start, max(timestamp) as time_stop
from mydata group by id;

如果timestamp是一个数字(utc秒)。

但是,假设它是一个字符串(YYYYMMDDHH)。

当然,我可以使用unix_timestamp,但这似乎有点过头了,因为下一步将是

select time_start, time_stop, count(*)
from newdata group by time_start, time_stop;

我将不得不再次映射到字符串。

那么,人们对字符串min / max做了什么?

2 个答案:

答案 0 :(得分:2)

max / min方法支持字符串。

答案 1 :(得分:1)

我不知道Hive是否支持字符串min() / max()。但是你的格式很好,所以只需将它们转换为数字即可:

create table newdata as
    select id, min(cast(timestamp as bigint)) as time_start, max(cast(timestamp as bigint)) as time_stop
    from mydata
    group by id;

如果你真的想要它们作为字符串,你可以在之后将它们转换回来。