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 по дате отправления: