Re: Query

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: Miguel Angel <mvillagomez(at)sayab(dot)com(dot)mx>
Cc: postgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Query
Date: 2006-01-11 19:54:08
Message-ID: c2d9e70e0601111154o56bcb363ic2c31d008c165bdc@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 1/10/06, Miguel Angel <mvillagomez(at)sayab(dot)com(dot)mx> wrote:
>
>
> -----Mensaje original-----
> De: Jaime Casanova [mailto:systemguards(at)gmail(dot)com]
> Enviado el: Miércoles, 11 de Enero de 2006 10:55 a.m.
> Para: Miguel Angel
> CC: postgreSQL
> Asunto: Re: [pgsql-es-ayuda] Query
>
> > Ya lo he probado y funciona perfectamente, pero una duda más trate de
> hacer
> > un filtrado en donde agrego varias columnas más, pero me da este error:
> >
> > Select distinct(columnaN, columnaM) from tabla orden by columnaN;
> >
> > ERROR: could not identify an ordering operator for type record
> > HINT: Use an explicit ordering operator or modify the query.
> >
> > Una variación del código que me diste; pero no entiendo eso de operadores
> > explicitos de ordenado.
> >
>
>> la version que yo te di usaba "distinct on" asi que no es lo mismo...
>
>
> Tengo que hacer un filtrado de varias columnas, ejemplo:
>
> Tabla
>
> Id-usu Nombre Calle Numero Colonia CP
> 1 Miguel Mesa 14 Centro 06000
> 1 Miguel Meson 24 Centro 06030
> 2 Javier Montes 84 Nueva1 19002
> 3 Francisco Montes 26 Vieja2 12248
> 3 Francisco Montes 26 ViejaOlm
> 12478
>
> Tengo que hacer un filtrado en el que obtenga cada uno de los usuarios
> existentes dentro de la base de datos, traigo todos los datos con una vista;
> y obtengo un resultado similar al ejemplo. (select * from tabla)
> Lo que necesito es obtener cada usuario y al menos una dirección en dado
> caso que tengan más de una y que no haya usuarios repetidos, y como verán el
> id solo se refiere a un usuario pero si tiene dos o más direcciones entonces
> aquí no me da bien el filtro distinct(id-usu) nada más necesito filtrar más
> líneas.
> El problema esta en que llevo como 3 días viendo postgres y no se como hacer
> funciones, recursiones, subquerys o demás. Yo programaba en C++.
> Alguna sugerencia?
>
>

pruebas=# select * from bar;
id_usu | nombre | calle | numero | colonia | cp
--------+-----------+--------+--------+-----------+-------
1 | Miguel | Mesa | 14 | Centro | 06000
1 | Miguel | Meson | 24 | Centro | 06030
2 | Javier | Montes | 84 | Nueva1 | 19002
3 | Francisco | Montes | 26 | Vieja2 | 12248
3 | Francisco | Montes | 26 | Vieja Olm | 12478
(5 filas)

pruebas=# select distinct on (id_usu) * from bar order by id_usu;
id_usu | nombre | calle | numero | colonia | cp
--------+-----------+--------+--------+-----------+-------
1 | Miguel | Meson | 24 | Centro | 06030
2 | Javier | Montes | 84 | Nueva1 | 19002
3 | Francisco | Montes | 26 | Vieja Olm | 12478
(3 filas)

fijate que uso distinct ON...

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

In response to

  • RE: Query at 2006-01-10 18:42:53 from Miguel Angel

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Nelson Svetaz 2006-01-11 20:05:16 Perdida de conexion al servidor
Previous Message Cristian Gallegos 2006-01-11 18:24:34 Re: Funciones y procedimientos