Re: calculate time diffs across rows with single timestamp
От | Bob Singleton |
---|---|
Тема | Re: calculate time diffs across rows with single timestamp |
Дата | |
Msg-id | 46703C0F.9080506@ibss.net обсуждение исходный текст |
Ответ на | Re: calculate time diffs across rows with single timestamp (Rodrigo De León <rdeleonp@gmail.com>) |
Список | pgsql-sql |
Rodrigo De León wrote: <blockquote cite="mid1181753515.419178.63440@j4g2000prf.googlegroups.com" type="cite"><pre wrap="">OnJun 13, 11:17 am, <a class="moz-txt-link-abbreviated" href="mailto:bsingle...@ibss.net">bsingle...@ibss.net</a>(Bob Singleton) wrote: </pre><blockquote type="cite"><pre wrap="">Anysuggestions on how I can build a result set that would return ASSET 001 AAA 1:00 (1 hour) ASSET 001 BBB 0:10 (10 minutes) ASSET 001 CCC 0:08 (8 minutes) ASSET 001 DDD {difference between timestamp and now()} ASSET 002 AAA 0:03 (3 minutes) ASSET 002 BBB {difference detween timestamp and now()} ASSET 003 AAA{diff between timestamp and now()} </pre></blockquote><pre wrap=""> SELECT TYPE, ID, STATUS , (COALESCE((SELECT MIN(DATETIME) FROM STATUSLOGWHERE TYPE = S.TYPE AND ID = S.ID AND DATETIME > S.DATETIME), NOW()::TIMESTAMP)- DATETIME) AS DURATION FROM STATUSLOG S ORDER BY TYPE, ID, STATUS ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend </pre></blockquote> Awesome - thank you very much! Slightly modified to collapse by TYPE / ID / STATUS<br /><br /><pre wrap="">SELECT TYPE, ID, STATUS, SUM( (COALESCE((SELECT MIN(DATETIME) FROM STATUSLOGWHERE TYPE = S.TYPE AND ID = S.ID AND DATETIME >S.DATETIME), NOW()::TIMESTAMP) - DATETIME)) FROM STATUSLOG S ORDER BY TYPE, ID, STATUS Thanks for the lesson! Bob Singleton </pre>
В списке pgsql-sql по дате отправления: