Re: LIMIT BASED ON PERCENT - Mailing list pgsql-sql

From Pavel Stehule
Subject Re: LIMIT BASED ON PERCENT
Date
Msg-id 162867790911181135u48cbeee0s18f7dee362557e51@mail.gmail.com
Whole thread Raw
In response to Re: LIMIT BASED ON PERCENT  (Another Trad <anothertrad@gmail.com>)
List pgsql-sql
2009/11/18 Another Trad <anothertrad@gmail.com>:
> But there is any way to do it?

CREATE OR REPLACE twenty()
RETURNS SETOF foo AS $$
DECLARE rows int; r record;
BEGIN rows := (SELECT count(*) FROM foo); FOR r IN EXECUTE 'SELECT * FROM r ORDER BY some col LIMIT ' || (rows
* 0.2)::int LOOP   RETURN NEXT r; END LOOP; RETURN;
END;
$$ LANGUAGE plpgsql;

this code should to work in 8.3

regards
Pavel Stehule

>
> 2009/11/18 Guillaume Lelarge <guillaume@lelarge.info>
>>
>> Le mercredi 18 novembre 2009 à 20:24:09, Another Trad a écrit :
>> > No, It doesn't.
>> > In my machine:
>> >
>> > First select
>> > ERROR:  syntax error at end of input
>> > LINE 1: select * from rapadura.cliente limit 20%
>> >                                                 ^
>> > Second one:
>> > ERROR:  argument of LIMIT must not contain subqueries
>> >
>> > Postgres 8.3
>> >
>>
>> It works for Lee because obviously he's working on a 8.4 server. You can
>> use
>> subquery in a LIMIT clause if you have an 8.4 PostgreSQL server. For
>> earlier
>> releases, there's no way to do this in a single query.
>>
>>
>> --
>> Guillaume.
>>  http://www.postgresqlfr.org
>>  http://dalibo.com
>
>


pgsql-sql by date:

Previous
From: Lee Hachadoorian
Date:
Subject: Re: LIMIT BASED ON PERCENT
Next
From: Pavel Stehule
Date:
Subject: Re: LIMIT BASED ON PERCENT