Muchas gracias por la ayuda, me orienta bastante pero aun me da error y no se 
porque a lo mejor es la versión del postgres la cual 8.1.18, le esvio la qry y 
el escenario real:
tabla1.campo1   | tabla1.campo2         | tabla2.campo1uno              |       
xxxx            |       1uno            |       xyy             |       2dos    
        |       ffffff          |       2tres           |       yyyy            
|       4tres           |       ddd             |       2uno            |       
xxxx            |       1uno            |       xxyy            |       2dos    
        |       ffffff          |       2tres           |       yyyy            
|       4tres           |       ddd             |       2uno            |       
xffyy           |       2uno            |       rr              |       3uno    
        |       rrr             |       5


select distinc tabla1.campo1, tabla1.campo2, tabla2.campo1from tabla1 as a,     
tabla2 as b     where  tabla2.campo1 =(select min(tabla2.campo1) from tabla1 as 
c,tabla2 as dwhere a.data1 = c.data1);
se ve el error?
gracias.

> From: [email protected]
> Date: Tue, 1 Apr 2014 08:25:56 -0500
> Subject: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] PGSQL según condicion
> To: [email protected]
> CC: [email protected]
> 
> 2014-04-01 7:34 GMT-05:00 Pelluco Pelluco <[email protected]>:
> > Hola! disculpen el atrevimiento pero recurro a ustedes para una pequeña
> > consulta, obviamente sobre SQL
> > Miren si tengo una seria de registro como estos
> >
> > data1 | data2|data3
> > uno     xxxx   1
> > uno     xxyy  2
> > dos     ffffff    2
> > tres    yyyy   4
> > tres    ddd    2
> >
> > como puedo hacer una sql (yo trabajo en postgres) que me permita sacar un
> > listado como este:
> > data1 | data2|data3
> > uno    |  xxxx  |  1
> > dos     | ffffff    | 2
> > tres    | ddd   |  2
> >
> > osea que priorice por el menor, en este caso, data3.
> >
> 
> Cualquiera de estas dos formas te sirve, si estas usando postgres 8.4
> o superior creo que la segunda es mas óptima pero podría estar
> equivocado:
> 
> postgres=# select data1, data2, data3 from tt_test a where data3 =
> (select min(data3) from tt_test b where a.data1 = b.data1);
>  data1 | data2  | data3
> -------+--------+-------
>  uno   | xxxx   |     1
>  dos   | ffffff |     2
>  tres  | ddd    |     2
> (3 filas)
> 
> postgres=# with datos as (select data1, data2, data3, row_number()
> over (partition by data1 order by data3) orden from tt_test)
> select data1, data2, data3 from datos where orden = 1;
>  data1 | data2  | data3
> -------+--------+-------
>  dos   | ffffff |     2
>  tres  | ddd    |     2
>  uno   | xxxx   |     1
> (3 filas)
> 
> 
> -- 
> Jaime Casanova         www.2ndQuadrant.com
> Professional PostgreSQL: Soporte 24x7 y capacitación
> Phone: +593 4 5107566         Cell: +593 987171157
> 
> -
> 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