Re: Sentencia SQL para dos registros por grupo

From: Oswaldo Hernández <listas(at)soft-com(dot)es>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Sentencia SQL para dos registros por grupo
Date: 2007-04-02 11:56:51
Message-ID: 4610EF83.5020208@soft-com.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Mario Wojcik escribió:
> Juan Martínez escribió:
>> Mario Wojcik escribió:
>>> Hola Muchachos...
>>> Es posible hacer esto con una sola sentencia SQL bien hecha?
>>> Por ejemplo, si en la base tengo esto...
>>> # CLIENTE FECHA LLAMADA
>>> 1 1 01/01 aaaaaaa
>>> 2 1 02/01 bbbbbbb
>>> 3 1 03/01 ccccccc
>>> 4 1 04/01 ddddddd
>>> 5 2 02/01 bbbbbbb
>>> 6 3 02/01 fffffff
>>> 7 3 06/01 jjjjjjj
>>> 8 3 08/01 eeeeeee
>>> 9 3 09/01 wwwwwww
>>> 10 3 09/01 xxxxxxx
>>>
>>>
>>> Yo quiero que la consulta me devuelva las 2 primeras de cada uno, es
>>> decir:
>>> CLIENTE FECHA LLAMADA
>>> 1 1 01/01 aaaaaaa
>>> 2 1 02/01 bbbbbbb
>>> 5 2 02/01 bbbbbbb
>>> 6 3 02/01 fffffff
>>> 7 3 06/01 jjjjjjj
>>>
>>> Se podrá?
>>
>> A ver:
>>
>> SELECT nro,cliente,fecha,llamada
>> FROM tabla
>> GROUP BY cliente HAVING count(cliente) <= 2
>> ORDER BY cliente,llamada;
>>
>> No lo probe, pero tengo la sospecha que deberia funcionar para lo que
>> necesitas.
>>
> No funciona, con algunos arreglos logro que me devuelva solo los que
> count es 1 o 2 por la condicion HAVING count devuelve el total .
>
>
> Lo que necesito es que devuelva los primeros uno o dos (si existen)
> registros de cada cliente y excluya los demas de cada uno.
>

Si se puede hacer en una sentencia, suponiendo que la columna '#' sea real y no un nº de fila
devuelto por pgadmin u otro, y ademas este bien ordenada.

Prueba esto:

select
t1.num, t1.cliente, t1.fecha, t1.llamada
from tabla as t1
where (select count(*) from tabla as t2 where t2.cliente = t1.cliente and t2.num <= t1.num) < 3

Saludos,

--
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Javier Estévez CIFA Córdoba 2007-04-02 12:01:03 Re: Importar fichero CSV
Previous Message Victor Lopez 2007-04-02 11:14:30 Re: IRC