Hola Carlos

La manera en que yo lo resolví, fue usando EXPLAIN antes de la consulta. Este 
te regresa algunos valores y entre ellos cuantos registros retornará.

Ejemplifico:

Ejecuto:
EXPLAIN select * from registro.convocatoria;

Retorna:
"Seq Scan on convocatoria  (cost=0.00..18875.86 rows=502386 width=182)"

De aquí solo tomo con programación "rows=502386".

Tú puedes agregarle mas comandos (SUBSTR, SPLIT) para que PostgreSQL solo te 
regrese la cantidad solamente.
Ya depende de tu ingenio y tiempo que le quieras dedicar.


Saludos.

NOTA: la consulta la realice en la versión: 8.4.


> Date: Tue, 27 Mar 2012 13:34:04 -0400
> From: [email protected]
> To: [email protected]
> CC: [email protected]; [email protected]
> Subject: Re: [pgsql-es-ayuda] numero de registros de consulta
> 
> Creo que con el uso de ventanas poedes solucionar eso.
> 
> ----- Mensaje original -----
> De: "Jaime Casanova" <[email protected]>
> Para: "Carlos Edward Grajales" <[email protected]>
> CC: "[email protected]\"" <[email protected]>
> Enviados: Domingo, 25 de Marzo 2012 0:30:14
> Asunto: Re: [pgsql-es-ayuda] numero de registros de consulta
> 
> 2012/3/24 Carlos Edward Grajales <[email protected]>:
> > Buenos dias....
> > Tengo la siguiente pregunta. ¿ Es posible determinar el numero de registros
> > (o al menos tener un valor aproximado) que devolvera una consulta antes de
> > ejecutarla?
> >
> > La idea es que debo restringir la ejecucion de ciertas consultas que superen
> > un umbral (por ejemplo 100000 registros) a un grupo determinado de usuarios.
> >
> 
> LIMIT 100000 ?
> 
> --
> Jaime Casanova         www.2ndQuadrant.com
> Professional PostgreSQL: Soporte 24x7 y capacitación
> -
> Enviado a la lista de correo pgsql-es-ayuda ([email protected])
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
> -
> Enviado a la lista de correo pgsql-es-ayuda ([email protected])
> Para cambiar tu suscripci�n:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
                                          

Responder a