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)
>
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é |