Somar horas oracle

Bom dia pessoal!

Tenho o seguinte caso tenho uma tabela com uma coluna onde ficam as horas ‘09:00:00’, eu preciso efetuar uma soma de todas essas horas, como eu faço isso? o SUM nao funciona.

valeu pessoal.

Em oracle você soma com + mesmo…
select horaX+horaY from table
ou sum(horas) para somar tuplas

qlq dúvida veja sites de consulta de referência

http://psoug.org/reference/date_func.html

[quote=douglasjam]Em oracle você soma com + mesmo…
select horaX+horaY from table
ou sum(horas) para somar tuplas

qlq dúvida veja sites de consulta de referência

http://psoug.org/reference/date_func.html[/quote]

sem querer abusar mais como eu somaria todas as linhas desta coluna?

Tenta essa consulta amigo:

select sum( to_char( to_date( COLUNA_HORA, 'hh24:mi:ss' ), 'hh24' ) ) + sum( to_char( to_date( COLUNA_HORA, 'hh24:mi:ss' ), 'mi' ) ) / 60 + -- minutos em horas ( sum(to_char(to_date( COLUNA_HORA, 'hh24:mi:ss' ), 'ss' ) ) / 60 ) / 60 -- segundos em horas from tabela

Caso a coluna já esteja em formato de data entao retire o TO_DATE. Vc tem de converter a coluna para para data e entao extrair cada campo da hora e fazer os somatórios individuais para depois somar tudo e ter o total de horas. Espero que ajude. []'s.

[quote=edsonregis]Tenta essa consulta amigo:

select sum( to_char( to_date( COLUNA_HORA, 'hh24:mi:ss' ), 'hh24' ) ) + sum( to_char( to_date( COLUNA_HORA, 'hh24:mi:ss' ), 'mi' ) ) / 60 + -- minutos em horas ( sum(to_char(to_date( COLUNA_HORA, 'hh24:mi:ss' ), 'ss' ) ) / 60 ) / 60 -- segundos em horas from tabela

Caso a coluna já esteja em formato de data entao retire o TO_DATE. Vc tem de converter a coluna para para data e entao extrair cada campo da hora e fazer os somatórios individuais para depois somar tudo e ter o total de horas. Espero que ajude. []'s.[/quote]

blz cara valeu.

mais quando tem essa sequencia de horas no banco

00:10:00
03:20:00
02:30:00
07:10:00
02:30:00
00:20:00
03:40:00
02:50:00
21:55:00
01:20:00
18:15:00
02:40:00
01:30:00
01:10:00

e eu somo da 69,33333333333333333333333333333333333333 ao inves de 21:20:00 sabe oq posso fazer?

valeu.

Testa essa consulta então:

select sum( to_char( to_date( COLUNA_HORA, 'hh24:mi:ss' ), 'hh24' ) ) + -- Soma das horas round( ( ( sum( to_char( to_date( COLUNA_HORA, 'hh24:mi:ss' ), 'mi' ) ) -- SOMA DE TODOS OS MINUTOS + round( sum( to_char( to_date( COLUNA_HORA, 'hh24:mi:ss' ), 'ss' ) ) / 60 ) ) / 60 ) -- TODOS OS SEGUNDOS EM MINUTOS, ARREDONDADOS ) -- arredondando os minutos em horas || ':' || mod( sum(to_char(to_date(COLUNA_HORA, 'hh24:mi:ss'), 'mi') ), 60 ) -- minutos RESTANTES dos minutos convertidos em HORAS || ':' || mod( sum(to_char(to_date(COLUNA_HORA, 'hh24:mi:ss'), 'ss') ), 60 ) -- segundos RESTANTES dos segundos convertidos em MINUTOS from TABLE

[]'s.