From: | "I(dot)N(dot)T(dot) - Programación" <dpto(dot)programacion(at)grupo-int(dot)com> |
---|---|
To: | POSTGRESQL - Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Agrupar una consulta con selección del primer elemento |
Date: | 2009-01-29 16:35:15 |
Message-ID: | 4981DAC3.1070003@grupo-int.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Buenas tardes,
Tengo las 3 tablas:
CREATE TABLE socios
(
id_socio integer NOT NULL DEFAULT nextval('"socios_seq"'::text),
nombre character varying(250),
dni character varying(250),
etc...
CREATE TABLE tarjetas_socios
(
id_tarjeta integer NOT NULL DEFAULT 0,
id_socio integer NOT NULL DEFAULT 0
)
CREATE TABLE tarjetas
(
id_tarjeta integer NOT NULL DEFAULT nextval('"tarjetas_seq"'::text),
id_tienda integer DEFAULT 0,
etc...
Y tengo la siguiente consulta:
CREATE OR REPLACE VIEW view_socios AS
SELECT socios.nombre, socios.dni, tarjetas.id_tienda
FROM socios, tarjetas_socios, tarjetas
WHERE socios.id_socio = tarjetas_socios.id_socio AND
tarjetas_socios.id_tarjeta = tarjetas.id_tarjeta
GROUP BY socios.nombre, socios.dni, tarjetas.id_tienda;
Al ejecutar la vista muestra algo como:
nombre dni id_tienda
-------------------------------------
LUIS 123456 15
LUIS 123456 11
LUIS 123456 47
ANDRES 987654 12
ANDRES 987654 15
MIGUEL 555555 7
etc...
Necesitaría que el resultado de la vista fuera algo como:
nombre dni id_tienda
-------------------------------------
LUIS 123456 15
ANDRES 987654 12
MIGUEL 555555 7
etc...
Es decir, teniendo en cuenta el agrupamiento por los 2 primeros campos y
CUALQUIER VALOR del tercero (el primero, el último, da igual), pero que
no duplique al socio. ¿No existe una consulta en PostgreSQL del tipo ...
CREATE OR REPLACE VIEW view_socios AS
SELECT socios.nombre, socios.dni, tarjetas.id_tienda
FROM socios, tarjetas_socios, tarjetas
WHERE socios.id_socio = tarjetas_socios.id_socio AND
tarjetas_socios.id_tarjeta = tarjetas.id_tarjeta
GROUP BY socios.nombre, socios.dni, first(tarjetas.id_tienda);
... (como en access, ¡¡¡lo siento!!!)? ¿Y de alguna otra forma?
Gracias de antemano por vuestra ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Javier Chávez B. | 2009-01-29 16:36:06 | Re: [pgsql-es-ayuda] Agrupar una consulta con selección del primer elemento |
Previous Message | Emanuel Calvo Franco | 2009-01-29 16:26:08 | Re: [?? Probable Spam] Ayuda sobre error en postgre |