通过配置单元的时间总和

问题描述 投票:0回答:1

我在一列中有以下数据。这些是时间值。我需要对蜂巢中的所有三行求和。简单地添加是行不通的。

Col1
1:22:23
0:20:55
1:12:00
hive sum timestamp-with-timezone
1个回答
0
投票

查看代码中的注释:

with your_data as (--use your table instead of this
select stack (3,
'1:22:23',
'0:20:55',
'1:12:00'
) as col1
)

select --calculate hours, minutes, seconds and concatenate to get time in HH:mm:ss format 
concat_ws(':',lpad(floor(sum_seconds/3600),2,'0'),        --HH
              lpad(floor(sum_seconds%3600/60),2,'0'),     --mm
              lpad(floor(sum_seconds%3600%60),2,'0')      --ss
       ) as sum_time
from       
(--sum seconds
select sum(col1[0]*3600+col1[1]*60+col1[2]) sum_seconds
from
(--split time parts
select split(col1,':') col1 from your_data
)s
)s;
© www.soinside.com 2019 - 2024. All rights reserved.