Re: staggered query?

From: Federico Pedemonte <fepede(at)email(dot)it>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: staggered query?
Date: 2004-04-22 20:09:54
Message-ID: 20040422200954.GF1044@noquarter.fepede.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-sql

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;

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2004-04-22 20:43:55 Re: FW: Postgres alongside MS SQL Server
Previous Message Jan Wieck 2004-04-22 20:06:20 Re: Missing OID rant

Browse pgsql-sql by date

  From Date Subject
Next Message Glenn MacGregor 2004-04-22 21:23:15 Cascade delete question
Previous Message Jan Wieck 2004-04-22 19:57:45 Re: rule's behavior with join interesting