ordenamiento de union de consultas

From: "jvenegasperu (dot)" <jvenegasperu(at)gmail(dot)com>
To: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: ordenamiento de union de consultas
Date: 2015-07-24 16:25:18
Message-ID: CA+KjtGcMYbNQ5FqsAsw8vzfiy+oxbmZmeNdA6nO0Z=fgNhVwcg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos buenos dias

tengo este problema necesito calcular el punto x con el valor mas alto de
dos segmentos de linea.

he hecho estas consultas

select st_x(st_startpoint(a2.the_geom)),a2.diametro from ap_accesorios a1
join ap_dist_agua a2
on st_intersects(st_buffer(a1.the_geom,0.5),a2.the_geom)
and a1.the_geom && a2.the_geom
where a1.gid = 13638

con esto obtengo los puntos iniciales de los dos tramos de la tabla
ap_dist_agua que se intersectan con el punto de ap_accesorios

y obtengo estos resultados

714968.595490661;"110"
715010.024705663;"160"

luego ejecuto

select st_x(st_endpoint(a2.the_geom)),a2.diametro from ap_accesorios a1
join ap_dist_agua a2
on st_intersects(st_buffer(a1.the_geom,0.5),a2.the_geom)
and a1.the_geom && a2.the_geom
where a1.gid = 13638

con esta otra consulta lo mismo pero en este caso para los puntos finales

715009.512588875;"110"
715009.512588877;"160"

En este caso los puntos finales de ambos tramos coinciden pero se pueden
dar el caso que el inicio de la linea 1 coincida con el final de la linea 2

pense en unir ambas consultas para ordenarlas y obtener el tramo de mayor
diametro y con mas alto valor en x

ejecute esto

select st_x(st_startpoint(a2.the_geom)),a2.diametro from ap_accesorios a1
join ap_dist_agua a2
on st_intersects(st_buffer(a1.the_geom,0.5),a2.the_geom)
and a1.the_geom && a2.the_geom
where a1.gid = 13638
union
select st_x(st_endpoint(a2.the_geom)),a2.diametro from ap_accesorios a1
join ap_dist_agua a2
on st_intersects(st_buffer(a1.the_geom,0.5),a2.the_geom)
and a1.the_geom && a2.the_geom
where a1.gid = 13638

y el resultado que me devuelve es

715009.512588877;"160"
715010.024705663;"160"
714968.595490661;"110"
715009.512588875;"110"

Ahora lo que quisiera es como podria ordenar el resultado de la union de
las dos consultas como si se tratara de un unico listado por el primer
campo en este caso el segundo registro deberia ser el mayor y aparecer en
primera posicion y asi sucesivamente ordenar los 4 registros.

les agradezco la ayuda que puedan brindarme

--
José Mercedes Venegas Acevedo
cel Mov RPM #955853768

mails: jvenegasperu(at)gmail(dot)com

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Kernel 2015-07-26 10:59:49 bloquear tabla en modo exclusivo
Previous Message Anthony Sotolongo 2015-07-21 20:29:32 Re: FATAL ERROR: lo siento ya tenemos muchos clientes