Re: Consultas con resultados aleatorios.

From: Yessica Brinkmann <yessica(dot)brinkmann(at)gmail(dot)com>
To: Yessica Brinkmann <yessica(dot)brinkmann(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Consultas con resultados aleatorios.
Date: 2006-01-31 19:35:28
Message-ID: a3b0d4880601311135n132353fdg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola.
Muchas gracias por tu ayuda. Te estoy respondiendo ahora recién porque ayer
estaba demasiado saturada con mi trabajo.

Me fue muy útil saber la existencia de la función random, la cual, como soy
nueva en Postgres, no sabía que existía...

Pude usar en un select en el cual estaba necesitando resultados
aleatorios...esta es mi sentencia...

%regla_visita_buscar% es una variable de mi aplicación que posteriormente se
expande...en tiempo de ejecución...

SELECT visita.cod_visita,

consultor.nombres || ' ' || consultor.apellidos as consultor,

(select companhia.nombre from productor, companhia, visita, visita_productor

where %regla_visita_buscar%

and productor.cod_companhia=companhia.cod_companhia

and productor.cod_productor=visita_productor.cod_productor

and visita.cod_visita=visita_productor.cod_visita

ORDER BY random()

LIMIT 1) as companhia,

(select distrito.nombre from productor, distrito, visita, visita_productor

where %regla_visita_buscar%

and productor.cod_distrito=distrito.cod_distrito

and productor.cod_productor=visita_productor.cod_productor

and visita.cod_visita=visita_productor.cod_visita

ORDER BY random()

LIMIT 1) as distrito,

(select departamento.nombre from productor, departamento, visita,
visita_productor

where %regla_visita_buscar%

and productor.cod_dpto=departamento.cod_depto

and productor.cod_productor=visita_productor.cod_productor

and visita.cod_visita=visita_productor.cod_visita

GROUP BY visita_productor.cod_productor, departamento.nombre

ORDER BY random()

LIMIT 1)as departamento,

area_tematica.nombre as area_tematica,

count(visita_productor.cod_visita_productor) as total_productores,

(select count(visita_productor.tipo_visita) from visita_productor where
tipo_visita='d'

and visita.cod_visita=visita_productor.cod_visita

) as total_fincas

FROM visita, area_tematica, consultor, visita_productor

WHERE %regla_visita_buscar%

AND visita.cod_visita=visita_productor.cod_visita

AND visita.cod_area_tematica=area_tematica.cod_area

AND visita.cod_consultor=consultor.cod_consultor

GROUP BY visita.cod_visita,

consultor.nombres,

consultor.apellidos,

area_tematica.nombre

Muchas gracias, una vez más, por tu ayuda...

El día 30/01/06, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> escribió:
>
> Yessica Brinkmann escribió:
>
> > Quisiera preguntar si alguno de uds. tiene idea de cómo puedo obtener
> > resultados aleatorios a partir de las consultas en Postgres. Es decir,
> > teniendo una tabla determinada llamada por ejemplo productores, me
> gustaría
> > poder obtener un productor aleatoriamente. Podría hacer esto mediante mi
> > aplicación, pero tengo interés en saber si es posible hacerlo usando
> > Postgres.
>
> La funcion random() te puede servir. Puedes aplicarla en la clausula
> WHERE segun sea conveniente.
>
> --
> Alvaro Herrera
> http://www.amazon.com/gp/registry/CTMLCN8V17R4
> "Always assume the user will do much worse than the stupidest thing
> you can imagine." (Julien PUYDT)
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Fernando Garcia 2006-01-31 21:13:52 Re: DUDA CON POSTGRES 8.1 y Debian !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Previous Message Alvaro Herrera 2006-01-31 17:52:04 Re: Re: [pgsql-es-ayuda] triggers y/o vistas para caché