Обсуждение: 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 ?
От
yaubi@yaubi.com (Yoann)
Дата:
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
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
>