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
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a