Re: Time Aggregates

Поиск
Список
Период
Сортировка
От Itai Zukerman
Тема Re: Time Aggregates
Дата
Msg-id 87em47u0da.fsf@matt.w80.math-hat.com
обсуждение исходный текст
Ответ на Time Aggregates  (Itai Zukerman <zukerman@math-hat.com>)
Список pgsql-sql
> >   SELECT symbol, date_trunc('minute', posted),
> >          min(price), max(price), avg(price)
> >   FROM trade
> >   GROUP BY symbol, date_trunc('minute', posted);

Hmmm... I'm not sure how to go about doing this for, say, 5 minute
intervals.  Basically, I want a function:
 date_round( timestamp, timespan ) --> timestamp

that will round the timestamp to the "nearest" timespan interval,
counting back from, say, the current time.
 date_round( '1/1/99 15:21', '5 minutes' ) --> '1/1/99 15:20'

if the current time is, say, 12:00.  As I see it, this involves
1. calculating the interval between now and the timestamp;2. rounding that interval to the nearest multiple of the
suppliedinterval;3. adding the rounded interval to the current time.
 

It's step 2 that I can't quite figure out.  I'm thinking about using
date_part( 'epoch', ... ) and some arithmetic.  Will that be OK?  Has
anyone done this before?

-itai

PS.  I'll also be happy if the function is called 'date_trunc' :)

PPS. I expect this query to be called much less often than inserts to
the table.


В списке pgsql-sql по дате отправления:

Предыдущее
От: Thomas Lockhart
Дата:
Сообщение: Re: Time Aggregates
Следующее
От: "David Lloyd-Jones"
Дата:
Сообщение: Re: Time Aggregates