From: | Anthony <asotolongo(at)uci(dot)cu> |
---|---|
To: | José Fermín Francisco Ferreras <josefermin54(at)hotmail(dot)com> |
Cc: | Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Tabla cliente y dividirla por sexo |
Date: | 2012-07-24 14:24:34 |
Message-ID: | 500EB022.6080801@uci.cu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El 22/07/2012 20:42, José Fermín Francisco Ferreras escribió:
> Gracias a Anthony y a Armando por sus respuestas!!
>
> Estuve probando la opcion de usar WITH y los resultados no me lo da
> como requiero.
> El resultado es de esta manera:
>
>
> with Va as (SELECT nombres||' '||apellidos AS "varones"
> FROM cliente
> WHERE sexo='M'),
> He as (SELECT nombres||' '||apellidos AS "hembras"
> FROM cliente
> WHERE sexo='F' )
>
> select Va.varones, He.hembras from Va,He
>
> * Varones * *Hembras*
> MICHAEL JORDAN MARIA SHARAPOVA
> MICHAEL JORDAN ANNA KOURNIKOVA
> ALBERT PUJOLS MARIA SHARAPOVA"
> ALBERT PUJOLS ANNA KOURNIKOVA"
> MIKE TYSON MARIA SHARAPOVA"
> MIKE TYSON ANNA KOURNIKOVA"
>
>
> En verdad nunca había utilizado la instrucción *with.*
> *
> *
> La parte final la modifiqué de la siguiente manera:
>
> select va.varones, he.hembras from Va full outer join He on
> (va.codigo=he.codigo);
>
> Pero el resultado tampoco es el esperado:
>
> *Varones Hembras*
> MICHAEL JORDAN
> ALBERT PUJOLS
> MIKE TYSON
>
> ANNA KOURNIKOVA
> MARIA SHARAPOVA
>
> Se necesita que salga de esta manera:
>
> *Varones Hembras*
> MICHAEL JORDAN ANNA KOURNIKOVA
> ALBERT PUJOLS MARIA SHARAPOVA
> MIKE TYSON
>
>
> *Nota:*
> Utilizo postgresql 9.1 en ubuntu 12.04
>
>
> ing. José Fermín Francisco Ferreras
> San Francisco de Macorís, Rep. Dom.
>
>
> ------------------------------------------------------------------------
> Date: Sun, 22 Jul 2012 12:48:43 -0400
> From: asotolongo(at)uci(dot)cu
> To: josefermin54(at)hotmail(dot)com
> CC: pgsql-es-ayuda(at)postgresql(dot)org
> Subject: Re: [pgsql-es-ayuda] Tabla cliente y dividirla por sexo
>
> El 21/07/2012 12:52, José Fermín Francisco Ferreras escribió:
>
> Hola a Todos!!
>
> Tengo una tabla llamada cliente
>
> create table cliente(
> codigo serial primary key,
> nombres varchar(100),
> apellidos varchar(100),
> sexo char(1)
> )
>
> y necesito presentar los datos de la siguiente manera:
>
> *Varones * * Hembras*
>
> Jose Lopez Maria Jimenez
> Luis Agosto Carolina Disla
> Domingo Almanzar
> Juan Duran
>
> osea los datos estan todos en una misma tabla y de manera
> desordenada y se necesita presentarlo de la manera anterior.
>
> Mi pregunta es:
>
> Se puede trabajar este caso con cursores y tablas temporales o
> bien podría hacerse con una consulta SQL, y cual es la manera más
> eficiente de hacerlo de los dos casos??
>
>
>
> ing. José Fermín Francisco Ferreras
> San Francisco de Macorís, Rep. Dom.
>
>
> <http://www.uci.cu/>
>
> Buenos días según entiendo necesitas los datos resultados en una misma
> consulta ,si estas en una versión superior a 8,4 de postgresql puedes
> utilizar las CTE con la clausula with
>
> ejemplo
> with Va as (SELECT nombres||' '||apellidos AS "varones"
> FROM cliente
> WHERE sexo='M'),
> He as (SELECT nombres||' '||apellidos AS "hembras"
> FROM cliente
> WHERE sexo='F' )
>
> select Va.varones, He.hembras from Va,He
>
>
> saludos
>
>
> <http://www.uci.cu/>
>
>
> <http://www.uci.cu/>
Hola José , ya tengo algo que te puede ayudar mira vas a tener que usar
funciones ventanas como row_number() [numera las filas por un orden
determinado]
y en con la clausula with realiza un full join por el id creado por el
row_number() :D
Aqui la posible solución :
with Va as (SELECT nombre AS "varones", row_number() over (order by
nombre) as id
FROM cliente1
WHERE sexo='M'),
He as (SELECT nombre AS "hembras",row_number() over (order by nombre)as id
FROM cliente1
WHERE sexo='F' )
select Va.varones, He.hembras from Va left join He using (id)
si resultado
"Anthony";"Claudia"
"Armando";"Fina"
"Juan";""
"Yoan";""
"Felipe";""
"Cuco";""
saludos
10mo. ANIVERSARIO DE LA CREACION DE LA UNIVERSIDAD DE LAS CIENCIAS INFORMATICAS...
CONECTADOS AL FUTURO, CONECTADOS A LA REVOLUCION
http://www.uci.cu
http://www.facebook.com/universidad.uci
http://www.flickr.com/photos/universidad_uci
From | Date | Subject | |
---|---|---|---|
Next Message | Armando Venegas Pérez | 2012-07-24 15:00:13 | RE: Tabla cliente y dividirla por sexo |
Previous Message | Andres A. Mamani | 2012-07-24 13:34:19 | Comprender los parámetros de configuración de PgBouncer (default_pool_size) |