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
