Thread: Which SQL query makes it possible to optain the 3 greatest values of an interger list ?

Which SQL query makes it possible to optain the 3 greatest values of an interger list ?

From
yaubi@yaubi.com (Yoann)
Date:
OO( Sql Problem )Oo. 

That is to say a table of 5 inputs of 1 integer field : 
  Table = { (1); (12); (3); (9); (4) }

We want to obtain a result of 1 input of 3 fields, 
corresponding to the 3 greatest values of Table, 
by descending order : 
  Result = { (12; 9; 4) } 

=> Which SQL query makes it possible to obtain Result from Table ?
We certainly need to use sub-queries, but how ?

Thank you in advance for your help !

Yoann AUBINEAU


Re: Which SQL query makes it possible to optain the 3 greatest

From
Patrik Kudo
Date:
On 12 Sep 2001, Yoann wrote:

> OO( Sql Problem )Oo.
>
> That is to say a table of 5 inputs of 1 integer field :
>
>    Table = { (1); (12); (3); (9); (4) }

Am I right that what you have is this?

CREATE TABLE T (v integer);
INSERT INTO T (v) VALUES (1);
INSERT INTO T (v) VALUES (12);
INSERT INTO T (v) VALUES (3);
INSERT INTO T (v) VALUES (9);
INSERT INTO T (v) VALUES (4);

In that case you could do the following:

SELECT v FROM T ORDER BY v DESC LIMIT 3;

This will select the values, sort them in descending order and limit the
result to 3 rows.

I hope it helps.

Regards,
Patrik Kudo

> We want to obtain a result of 1 input of 3 fields,
> corresponding to the 3 greatest values of Table,
> by descending order :
>
>    Result = { (12; 9; 4) }
>
> => Which SQL query makes it possible to obtain Result from Table ?
> We certainly need to use sub-queries, but how ?
>
> Thank you in advance for your help !
>
> Yoann AUBINEAU



I would use

SELECT id FROM table ORDER BY id LIMIT 0, 3;

in order to get the top 3 results. The key is "Limit" keyword.



==========
Wei Weng
Network Software Engineer
KenCast Inc.


> -----Original Message-----
> From: pgsql-sql-owner@postgresql.org
> [mailto:pgsql-sql-owner@postgresql.org]On Behalf Of Yoann
> Sent: Wednesday, September 12, 2001 4:41 AM
> To: pgsql-sql@postgresql.org
> Subject: [SQL] Which SQL query makes it possible to optain the 3
> greatest values of an interger list ?
> 
> 
> OO( Sql Problem )Oo. 
> 
> That is to say a table of 5 inputs of 1 integer field : 
> 
>    Table = { (1); (12); (3); (9); (4) }
> 
> We want to obtain a result of 1 input of 3 fields, 
> corresponding to the 3 greatest values of Table, 
> by descending order : 
> 
>    Result = { (12; 9; 4) } 
> 
> => Which SQL query makes it possible to obtain Result from Table ?
> We certainly need to use sub-queries, but how ?
> 
> Thank you in advance for your help !
> 
> Yoann AUBINEAU
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>