¿Una consulta para encontrar el valor promedio para cada rango?

Aqui esta mi mesa

GID | Distancia (KM) | Subdistancia (KM) | Iri_avg ------------------------------------------------- 1 | 13.952 | 0 | 0.34 2 | 13.957 | 0.005 | 0.22 3 | 13.962 | 0.010 | 0.33 4 | 13.967 | 0.015 | 0.12 5 | 13.972 | 0.020 | 0.35...

Me gustaría encontrar AVG de Iri_avg para cada rango, por ejemplo..

cada 5 metros (por defecto) cada 10 metros cada 100 metros cada 500 metros

¿Cuál es la consulta de PostgreSQL para resolver este problema?

preguntado el 28 de julio de 12 a las 10:07

¿Puede dar un pequeño ejemplo de qué tipo de salida esperaría con esta entrada? Creo que esto debería ser bastante simple con un group by pero tengo dudas si un generate_series o se necesita algo. -

1 Respuestas

Tu pregunta no está clara. Tus datos tienen dos columnas de distancia, ¿a cuál te refieres?

Aquí hay un ejemplo de cómo obtener promedios basados ​​en la subdistancia.

select floor(subdistance*1000)/5.0)*5.0 as lower_bound, avg(iri_avg) as avg_ari_avg
from t
group by floor(subdistance*1000)/5.0)*5.0
order by 1

La expresión "piso (subdistancia*1000)/5.0)*5.0" obtiene el incremento de 5 metros más cercano menor que el valor. Puede reemplazar el "5" con "10" o "100" para otra clasificación.

Esto se entiende como una ilustración. No está claro qué columna desea agrupar, qué quiere hacer con los contenedores vacíos y si está buscando todos los anchos de contenedor en una sola consulta en lugar de la consulta para manejar solo un ancho de contenedor.

Respondido 28 Jul 12, 14:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.