Hola Guillermo probe la consulta y efectivamente numera el problema es qu lo que quiero numerar es cada cambio del campo sector no el correlativo tengo esto
la consulta me devuelve esto: 0901 mz1 1 0901 mz2 2 0901 mz3 3 0902 mz1 1 0902 mz2 2 0902 mz3 3 0903 mz1 1 0903 mz2 2 0903 mz3 3 0904 mz1 1 0904 mz2 2 0904 mz3 3 lo que yo necesito es esto 0901 mz1 1 0901 mz2 1 0901 mz3 1 0902 mz1 2 0902 mz2 2 0902 mz3 2 0903 mz1 3 0903 mz2 3 0903 mz3 3 0904 mz1 4 0904 mz2 4 0904 mz3 4 es el tipo de numeración que necesito pero para el resultado de una consulta cualquiera. al resultado de la consulta decirle por ejemplo numerar por el campo sector y le vaya poniendo el mismo numero como la segunda lista el resultado estaria ordenado previamente. El 16 de abril de 2014, 12:44, Guillermo E. Villanueva < [email protected]> escribió: > Ok, probá lo siguiente: > > SELECT sector, mz, row_number() OVER (PARTITION BY sector) FROM tabla; > > Guillermo Villanueva > > El 15 de abril de 2014, 10:47, jvenegasperu . > <[email protected]>escribió: > > Guillermo buenos dias >> >> tienes razon el ultimo registro deberia decir 3 por el cambio de sector >> estoy revisando la funcion window solo estoy logrando numerar >> correlativamente y lo que necesito es colocar el numero por cada cambio de >> sector >> >> sector mz numero >> 0901 mz1 1 >> 0901 mz2 1 >> 0901 mz3 1 >> >> 0902 mz1 2 >> 0902 mz2 2 >> 0903 mz3 3 >> >> >> >> El 15 de abril de 2014, 7:27, Guillermo E. Villanueva < >> [email protected]> escribió: >> >> José buen día, no manejo nada de gis pero solo comento: tu ejemplo creo >>> que tiene un error no? el último registro tiene cambio de sector y el >>> número sigue siendo 2. >>> En caso de que así sea, esto es lo que estás necesitando: >>> http://www.postgresql.org/docs/9.1/static/tutorial-window.html >>> Saludos >>> >>> Guillermo Villanueva >>> >>> >>> >>> El 13 de abril de 2014, 1:01, jvenegasperu . >>> <[email protected]>escribió: >>> >>> Estimado Victor >>>> >>>> gracias por tu interes si entiendo tu consulta localizas un area >>>> geografica por el perimetro lo cual esta muy bueno sin embargo respecto a >>>> lo siguiente: >>>> >>>> >>>> >pero veo que estas usando un conjuntos de campos alfanuméricos >>>> (nomenclatura catastral) para determinar un lugar geográfico, y ademas >>>> >tenes un campo verdaderamente geográfico. El problema con esto es que >>>> dependes de que quien manipule los datos, lo hiciera siempre >estrictamente >>>> bien. Si por ejemplo alguien se equivoca y pone 0901 en lugar de poner 0902 >>>> cuando imprimas el pdf del numero 1 tendrias >agregado algo que esta solo y >>>> lejos como si fuera una isla, un polígono posiblemente asilado del resto, y >>>> cuando imprimas el 2 tendrias un >hueco. >>>> >>>> tienes toda la razon podria tener una isla o un hueco en la cartografia >>>> mi caso funciona asi el usuario por ejemplo dibuja un area geografica con >>>> quantum gis. yo simplemente he puesto un trigger dentro de la base de datos >>>> para que automaticamente por ejemplo un conjunto de manzanas se codifiquen >>>> para pertenecer al sector que dibujo el usuario de esa forma se evita la >>>> isla o el hueco en la cartografia porque la codificacion se hace en funcion >>>> a las geometrias afectadas. >>>> >>>> Con lo cual se logra como dices que esten estrictamente bien >>>> codificadas,de hecho se puede realizar la mayoria de operaciones desde el >>>> lado espacial sin embargo la información de mi sistema debo migrarla >>>> tambien a un sistema oracle que necesita alguna forma de identificación >>>> para corresponder con la parte espacial por eso agrego la codificacion de >>>> esa forma. >>>> >>>> Ahora Quantum Gis es capaz de generar los planos a manera de atlas de >>>> manera automatica por esa razon si se puede lograr la numeración que >>>> mencione los planos se obtendrian con un par de clics sin preocuparse por >>>> el encuadre o centrado porque eso se hace automatico ya lo he probado >>>> varias veces de hecho cuando necesito planos de diferentes lugares yo lleno >>>> la numeración manualmente y listo. >>>> >>>> Comentarte por ejemplo que tener el plano de los 800 grupos >>>> poblacionales que tiene la ciudad para un tematico x se puede tener listos >>>> en unos 3 a 5 minutos y yo creo que un computador mas potente podria ser >>>> hasta menos tiempo. >>>> >>>> claro sin contar que previamente yo hago la numeración que explique >>>> inicialmente la cual me toma aproximadamente unos 30 minutos de trabajo >>>> realizando los scripts para numerar manualmente directamente en el pgadmin. >>>> >>>> por esa razon estoy interesado en poder armar esta función que numere >>>> cada cambio de un campo de una consulta dada. >>>> >>>> ya que tengo un sistema en web para consultar tambien. >>>> >>>> pensaba armar una especie almacen de consultas que el usuario >>>> realiza.en la parte web y poner una opcion que diga preparar planos, cuando >>>> le de clic a esa opcion el sistema realizaria la numeracion interna para >>>> esa consulta que armo el usuario y luego desde quantum gis tendria sus >>>> planos listos en una pasada. >>>> >>>> esa es mi idea Victor espero podamos seguir comentando estos temas ya >>>> que no he tenido mucho contacto con desarrolladores en postgis >>>> >>>> saludos a todos y espero no los estemos aburriendo con tanta verborragia >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> El 12 de abril de 2014, 11:25, Victor Hugo Roumieu >>>> <[email protected]>escribió: >>>> >>>> Hola gentes del foro. Estimado Jose, no se si te comprendo y si te >>>>> puedo ayudar, pero veo que estas usando un conjuntos de campos >>>>> alfanuméricos (nomenclatura catastral) para determinar un lugar >>>>> geográfico, >>>>> y ademas tenes un campo verdaderamente geográfico. El problema con esto es >>>>> que dependes de que quien manipule los datos, lo hiciera siempre >>>>> estrictamente bien. Si por ejemplo alguien se equivoca y pone 0901 en >>>>> lugar >>>>> de poner 0902 cuando imprimas el pdf del numero 1 tendrias agregado algo >>>>> que esta solo y lejos como si fuera una isla, un polígono posiblemente >>>>> asilado del resto, y cuando imprimas el 2 tendrias un hueco. >>>>> >>>>> Siendo asi en tu caso bien podrias hacer vistas basandote unicamente >>>>> en el dato espacial, para ello debieras primer hacerte una tabla con los >>>>> sectores que quieres graficar, deberian tener los poligonos que marcan el >>>>> perímetro de la zonas, por ejemplo localidades, barrios, sectores, >>>>> chacras, >>>>> quintas, etc. Luego en la vista haces un join entre las dos tablas con >>>>> las >>>>> generosas funciones que postgis te da para sql. >>>>> >>>>> Un caso de mi base real que es similar creo q lo tuyo es el siguiente: >>>>> >>>>> create view aux.mapa1_de_calles as >>>>> select trim(cllagr.nombre) as nombre, max(cllagr.gid) as gid, >>>>> st_union( cllagr.cll )::geometry as cll_geom >>>>> from (select ncl.*,st_intersection( >>>>> ncl.the_geom,ctstro.mapa_tematico_perimetro( >>>>> 7 )) as cll >>>>> from gis.nomencladorcalles ncl >>>>> where ncl.the_geom&&ST_buffer(ctstro.mapa_tematico_perimetro( 7 >>>>> ),1) and (ncl.nombre is not null) >>>>> order by ST_PointN(the_geom,1) desc) as cllagr >>>>> group by 1; >>>>> >>>>> Donde ctstro.mapa_tematico_perimetro( 7 ) es un pl-sql que me retorna >>>>> un perímetro. >>>>> Obvio podrias hacer que el sector 7 fuera un parametro, o hacer un >>>>> procedimiento o materializar la vista, etc. infinitas posibilidades >>>>> >>>>> Finalmente como informático viejo que piensa en modo relacional, >>>>> (deformación profesional) arranco a arreglar las cosas con sql. >>>>> Es posible por ello esto no te sirva, pero prefiero usar las muchas >>>>> funciones que te dan los cartuchos espaciales de los motores grandes >>>>> (postgres-orcale-db2) para resolver lo mas posible, antes de que entre en >>>>> las herramientas finales com qgis, geoserver, gv-gis etc, ya que sino, no >>>>> hay diferencia entre usar un terrible motor como postgres-postgis, con un >>>>> simple sahpe (dbf) >>>>> >>>>> Saludos >>>>> vhr >>>>> >>>>> - >>>>> Enviado a la lista de correo pgsql-es-ayuda ( >>>>> [email protected]) >>>>> Para cambiar tu suscripción: >>>>> http://www.postgresql.org/mailpref/pgsql-es-ayuda >>>>> >>>> >>>> >>>> >>>> -- >>>> José Mercedes Venegas Acevedo >>>> cel: Mov. 949808846 >>>> >>>> mails: [email protected] >>>> [email protected] >>>> >>>> PHP Spanish Docs translator member. >>>> http://www.php.net/manual/es/index.php >>>> >>> >>> >> >> >> -- >> José Mercedes Venegas Acevedo >> cel: Mov. 949808846 >> >> mails: [email protected] >> [email protected] >> >> PHP Spanish Docs translator member. >> http://www.php.net/manual/es/index.php >> > > -- José Mercedes Venegas Acevedo cel: Mov. 949808846 mails: [email protected] [email protected] PHP Spanish Docs translator member. http://www.php.net/manual/es/index.php
