Re: staggered query? - Mailing list pgsql-general

From Federico Pedemonte
Subject Re: staggered query?
Date
Msg-id 20040422200954.GF1044@noquarter.fepede.org
Whole thread Raw
In response to staggered query?  ("Vincent Ladlad" <vincentl@ntsp.nec.co.jp>)
Responses Re: staggered query?
List 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 by date:

Previous
From: "John Sidney-Woollett"
Date:
Subject: Re: Missing OID rant
Next
From: "Joshua D. Drake"
Date:
Subject: Re: FW: Postgres alongside MS SQL Server