Skip site navigation (1) Skip section navigation (2)

Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Agrupar una consulta con selección del primer elemento

From: "I(dot)N(dot)T(dot) - Programación" <dpto(dot)programacion(at)grupo-int(dot)com>
To: "Javier Chávez B(dot)" <jchavezb(at)gmail(dot)com>, POSTGRESQL - Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Agrupar una consulta con selección del primer elemento
Date: 2009-01-29 17:51:47
Message-ID: 4981ECB3.6000101@grupo-int.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
NO! Los siento, no es lo que quiero, en otra respuesta a este post me 
explico mejor (creo!)

I.N.T. - Programación escribió:
> Perfecto, ni se me había ocurrido...
>
> Gracias
>
> Javier Chávez B. escribió:
>> On Thu, Jan 29, 2009 at 4:35 PM, "I.N.T. - Programación"
>> <dpto(dot)programacion(at)grupo-int(dot)com> wrote:
>>  
>>> 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
>>>
>>> -- 
>>> TIP 4: No hagas 'kill -9' a postmaster
>>>
>>>     
>>
>> Probaste con un Max ???
>>
>> algo asi :
>>
>> SELECT   socios.nombre,
>>                 socios.dni,
>>                 Max(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;
>>
>> Puede ser???
>>
>> Slds.
>>
>> J
>>
>>   
>
> -- 
> TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te 
> lo agradecerán
>


In response to

Responses

pgsql-es-ayuda by date

Next:From: Javier Chávez B.Date: 2009-01-29 17:55:27
Subject: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql?==?ISO-8859-1?Q?-es-ayuda] Agrupar una consulta con selección del primer el?==?ISO-8859-1?Q?emento
Previous:From: I.N.T. - ProgramaciónDate: 2009-01-29 17:50:28
Subject: Re: [pgsql-es-ayuda] Agrupar una consulta con selección del primer elemento

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group