2014-11-19 9:16 GMT-02:00 Paulo <pa...@visualpsistemas.com.br>:

>
> >>http://www.dextra.com.br/window-functions-no-postgresql-parte1/
> >>http://www.dextra.com.br/window-functions-no-postgresql-parte-2/
>
> Flávio,
> Nenhum destes exemplos trabalha com tipo de dado timestamp.
> Eu preciso fazer exatamente como faço com meus valores, Ex:
>
> SUM(valor) OVER(PART BY conta ORDER BY conta,valor) as Total,
>
> Qual função de grupo devo usar para realizar o mesmo resulta com timestamp?
>


Acho que você precisava exatamente da terceira parte dos artigos nos
últimos links, aquele que ainda não escrevi (foi mal)...

Mas então, pelo que entendi o resultado que você quer apresentar é a
diferença entre os timestamp's, ou seja o resultado vai ser um "interval".
Daí você faria usando a função lag (lag retorna o valor da linha anterior
ou NULL caso seja a primeira, ou primeira da partição). Exemplo:

    SELECT usuario, acao, data_hora,
        data_hora - (lag(data_hora) OVER(PARTITION BY usuario, acao ORDER
BY data_hora))
    FROM ...


Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a