Re: staggered query?
От | Federico Pedemonte |
---|---|
Тема | Re: staggered query? |
Дата | |
Msg-id | 20040422200954.GF1044@noquarter.fepede.org обсуждение исходный текст |
Ответ на | staggered query? ("Vincent Ladlad" <vincentl@ntsp.nec.co.jp>) |
Ответы |
Re: staggered query?
|
Список | pgsql-general |
On Wed, Apr 21, 2004 at 10:53:16AM +0800, Vincent Ladlad wrote: > > the table contains hundreds of thousands of records. > i need to get all the entries/records at every 10 seconds > interval. example, given a table: > > hh/mm/ss | data > --------------- > 00:00:00 1 > 00:00:01 2 > 00:00:02 3 > 00:00:03 4 > 00:00:04 5 > 00:00:05 6 > 00:00:06 7 > 00:00:07 8 > .. > .. > > my query should return: > 00:00:10 > 00:00:20 > 00:00:30 > (etc) If I understood your problem, the only solution i found was write a simple plpgsql function (read at the end of the mail). Don't know if it is the best solution but it works ! Ciao, Federico. ------------------------------------------------------------------------ Usage : select * from timetable ('23/06/1974 18:15', '23/06/1974 20:30', '00:10'); timetable --------------------- 1974-06-23 18:15:00 1974-06-23 18:25:00 1974-06-23 18:35:00 1974-06-23 18:45:00 1974-06-23 18:55:00 ... CREATE OR REPLACE FUNCTION timetable(timestamp, timestamp, interval) RETURNS SETOF timestamp AS ' DECLARE inizio alias for $1; fine alias for $2 ; inter alias for $3; tt timestamp; BEGIN tt := inizio; while tt <= fine loop return next tt; tt:=tt+inter; end loop; RETURN ; END; ' LANGUAGE plpgsql IMMUTABLE;
В списке pgsql-general по дате отправления: