On 22/11/2011 13:56, Moisés P. Sena wrote:
> Boa tarde pessoal!
>
> os seguintes dados:
>
> $ select * from usodememoria;
>                data           | mem
> -------------------------------+------
>   2011-11-21 15:21:00 | 1038
>   2011-11-21 15:22:00 | 1049
>   2011-11-21 15:23:00 | 1049
>   2011-11-21 15:24:00 | 1049
>   2011-11-21 15:25:00 | 1052
>   2011-11-21 15:26:00 | 1054
>   2011-11-21 15:27:00 | 1054
>   2011-11-21 15:28:00 | 1054
>   2011-11-21 15:29:00 | 1065
>   2011-11-21 15:30:00 | 1080
>   2011-11-21 15:31:00 | 1080
>   2011-11-21 15:32:00 | 1073
>   2011-11-21 15:33:00 | 1065
>   2011-11-21 15:34:00 | 1054
>
> Preciso fazer um select que me retorne, agrupando conforme o valor de
> "mem" e a data, onde mem sofre alteração na data posterior. O resultado
> abaixo:
>
>                data           | mem
> -------------------------------+------
>   2011-11-21 15:21:00 | 1038
>   2011-11-21 15:22:00 | 1049
>   2011-11-21 15:25:00 | 1052
>   2011-11-21 15:26:00 | 1054
>   2011-11-21 15:29:00 | 1065
>   2011-11-21 15:30:00 | 1080
>   2011-11-21 15:32:00 | 1073
>   2011-11-21 15:33:00 | 1065
>   2011-11-21 15:34:00 | 1054
>
> Já tentei de várias formas fazer com distinct e nao consegui chegar nem
> perto disto. Nao estou conseguindo montar a logica do select.
>
> Alguém pode me ajudar com isto??
>
> Abraços

Bom dia.

Segue o select que aqui deu certo, qualquer coisa posta ai.

select *
from (
select distinct(tp.mem) as mem,min(tp.data) as data
from tmp.tb_tmp tp
group by tp.mem
having count(tp.mem) > 1 --se quiser apenas os que tiveram modificacao
) as foo
order by mem,data

Espero que te ajude.
Abraços!

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

Responder a