Oracle encuentra un promedio de dos marcas de time

No veo que este sea ese ahrd, pero parece que no puedo encontrar la solución en ningún lado. Ya está listo para las dates, pero no puedo ver que funcione para TIMESTAMP.

Estoy tratando de hacer

select avg(last_timestmp - ref_timestmp) as average from param

Me sigue diciendo que no es un número válido, lo cual obtengo. ¿Pero cómo lo hago un número válido? He intentado extraer y un montón de otras cosas, pero nada parece funcionar.

Quiero el promedio en segundos. una centésima de segundo sería .01 y 6 horas serían 21600

¡Gracias!

Puede usar EXTRACT para sacar las partes en segundos y sumrlas, luego calcule su promedio:

 select avg(extract(second from intrvl) + extract(minute from intrvl) * 60 + extract(hour from intrvl) * 60 * 60 + extract(day from intrvl) * 60 * 60 * 24) average from ( select (last_timestmp - ref_timestmp) intrvl from param ) 

Puede intentar

 SELECT AVG(p.last_date - p.ref_date) as average FROM ( SELECT last_timestamp - TO_DATE('1970-01-01', 'YYYY-MM-DD') \* 8640000 as last_date ,ref_timestamp - TO_DATE('1970-01-01', 'YYYY-MM-DD') \* 8640000 as ref_date FROM param ) p 

Esto le dará la diferencia en milisegundos.

Ver: http://blogs.oracle.com/mock/entry/converting_oracle_dates_to_unix