トップページに戻る    次のSQLパズルへ    前のSQLパズルへ

2-3-7 任意の値に対する順位付け

SQLパズル

Pointが50点の場合に、
TestResultテーブルのPoint列で何位か調べる。


データ作成スクリプト

create table TestResult(Point number(3));

insert into TestResult values(100);
insert into TestResult values( 90);
insert into TestResult values( 70);
insert into TestResult values( 30);
insert into TestResult values(  5);
commit;


SQL

--■■■count関数を使う方法■■■
select count(*)+1 as "50点の人の順位" from TestResult
 where Point > 50;

--■■■Rank関数を使う方法■■■
select Rank(50) within group (order by Point desc) as "50点の人の順位"
from TestResult;


解説

Rank関数を使って、任意の値に対する順位付けを行うことができます。