Re: Selecting top N percent of records. - Mailing list pgsql-general

From Peter Geoghegan
Subject Re: Selecting top N percent of records.
Date
Msg-id AANLkTi=i9G+5aVqvfnbB2RKGL4Rtfnh_PRN_aZOCu2te@mail.gmail.com
Whole thread Raw
In response to Selecting top N percent of records.  (Tim Uckun <timuckun@gmail.com>)
Responses Re: Selecting top N percent of records.  (Tim Uckun <timuckun@gmail.com>)
List pgsql-general
On 18 October 2010 00:33, Tim Uckun <timuckun@gmail.com> wrote:
> Is there a way to select the top 10% of the values from a column?
>
> For example the top 10% best selling items where number of sales is a column.
>

That is a bit problematic because it necessitates knowing the number
of rows total, and slow counting is an idiosyncrasy of postgres.

http://wiki.postgresql.org/wiki/Slow_Counting

To get the top 10%:

SELECT * FROM table LIMIT(SELECT (COUNT(*) * 0.1)::integer FROM table)

--
Regards,
Peter Geoghegan

pgsql-general by date:

Previous
From: Kynn Jones
Date:
Subject: Re: Fastest way to check database's existence
Next
From: Tim Uckun
Date:
Subject: Re: Selecting top N percent of records.