2014-02-12 2 views
0

я могу это сделать:MIN/MAX для строк?

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 на строках?

+0

SQL поддерживает 'min()'/'max()' для строк, используя алфавитное упорядочение. –

+0

Улей поддерживает мин/макс по строкам –

ответ

0

Я не знаю, поддерживает ли 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; 

Если вы действительно хотите их как строки, вы можете конвертировать их обратно потом.

1

максимальный/минимальный способ поддержка колонка.

Смежные вопросы