Преобразовать в unix_timestamp, суммировать, разделить на 3, преобразовать в bigint и преобразовать обратно в ЧЧ: мм: сс:
with data as --Data example. Use your table instead
(select '12:10:30' start_time,'01:10:00' end_time, '02:10:00' duration)
select from_unixtime(cast((unix_timestamp(start_time,'HH:mm:ss')+ unix_timestamp(end_time,'HH:mm:ss')+unix_timestamp(duration,'HH:mm:ss'))/3 as bigint),'HH:mm:ss') from data;
Результат:
05:10:10
См. Тест здесь:http://demo.gethue.com/hue/editor?editor=285484&type=hive
Для одного столбца:
Преобразование в метку времени Unix, вычисление среднего значения в секундах, преобразование в bigint (среднее значение равно двойному, будет потеря доли во второй точности) и, наконец,преобразовать его обратно в формат времени строки:
with data as --Data example. Use your table instead
(select stack(2,'12:10:30','01:10:00') as timeStr)
select from_unixtime(cast(avg(unix_timestamp(timeStr,'HH:mm:ss'))as bigint),'HH:mm:ss') from data;
Результат:
06:40:15
См. тест здесь: http://demo.gethue.com/hue/editor?editor=285464&type=hive