Message: 2
Date: Fri, 3 Aug 2012 16:21:49 -0300
From: Osvaldo Kussama<[email protected]>
Subject: Re: [pgbr-geral] Fwd: Re: ajuda com select
To: Comunidade PostgreSQL Brasileira
        <[email protected]>
Message-ID:
        <cadgbbqjcbcn5bchl47c_9epakaoypbhu9juqf2pldsi_jbh...@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1

Em 03/08/12, flavio<[email protected]>  escreveu:

>> Pessoal
>> poderiam me ajudar com uma select?
>>
>> Tabela com as colunas: a,b,c,data
>> Todas as colunas fazem parte da chave.
>>
>> Como listar todos os dados menos o registro com a maior data?
>> A minha intenção é excluir todos os registros, menos o ultimo (com a
>> maior data).
>> Eu só sei que posso conseguir o ultimo agrupando e pedindo o max(data)
>> mas não sei como fazer para listar todos menos este.
>>
>> Obrigado pelas ideias...
>> Use EXCEPT.
>>
>> SELECT  a,b,c,data FROM sua_tabela
>> EXCEPT
>> SELECT a,b,c,MAX(data) FROM sua_tabela GROUP BY a, b, c;
>>
>> Osvaldo
> Osvaldo
> A select fica beleza.
> Como fazer isto com delete:
>
> DELETE FROM sua_tabela
> EXCEPT
> SELECT a,b,c,MAX(data) FROM sua_tabela GROUP BY a, b, c;
>
>
> assim da erro de sintaxe no EXCEPT
> Obrigado
> Flávio
>
DELETE FROM sua_tabela
WHERE ROW(a, b, c, d) NOT IN (SELECT a, b, c, MAX(data) AS d FROM
sua_tabela GROUP BY a, b, c);

Osvaldo

Nao tinha usado WHERE ROW ainda,

Obrigado novamente Osvaldo

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a