Saludos a todos, trataré de dar una explicación para luego hacer la pregunta.
tengo la siguiente tabla "Hist":
Código:
Tipo Fecha SiguienteVisita
--------------------------------------
A 2005-01-21 2005-02-21
A 2005-02-25 2005-03-25
B 2005-03-26 2005-04-26
A 2005-04-30 2005-05-30
Para conocer el retraso que tiene en cada visita, hago lo siguiente (comparar la Siguiente Visita de la anterior con la Fecha cuando vino):
Código SQL
[-]
select A.Tipo, datediff(dd,(select top 1 H.SiguienteVisita
from Hist H
where H.fecha_<_A.Fecha) , A.Fecha) as Retraso
from Hist A
Que me da el siguiente resultado:
Código:
Tipo Retraso
---------------
A NULL
A 4
B 1
A 4
Lo que es necesario obtener de estos datos, es el promedio de retraso de cada tipo, es decir:
Código:
Tipo PromedioRetraso
---------------
A 2.66
B 1
intenté utilizar AVG() agrupando por Tipo de esta forma:
AVG(Retraso) pero me marca que "Retraso no es un campo válido".
Luego intenté
AVG(datediff(dd,...,...)) pero me dice que no puedo utilizar la función AVG cuando se encuentra una sub-query.
¿Alguna sugerencia sobre como obtener el promedio de un campo que estoy calculando con una sub-consulta?
--------- Editado -------
Lo solucioné utilizando una tabla temporal. De cualquier manera:Cualquier sugerencia, idea o recomendación será bienvenida.