- 締切済み
順位を求めるSELECT文
順位を求めるSELECT文はどう記述すればいいのでしょうか? ご教授お願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- nda23
- ベストアンサー率54% (777/1415)
回答No.3
サンプルSQL テーブル(TBL)に氏名(Name)、得点(Score)があり、成績順に表示する。 SELECT A.Name,COUNT(A.Name)+1 AS 順位 FROM TBL A LEFT JOIN TBL B ON A.Score < B.Score GROUP BY A.Name ORDER BY COUNT(A.Name); 【解説】 自身のテーブルとJoinし、順位付けする項目で自分より良い成績のレコード数+1が順位です。 上記サンプルではAが主体で、Bは自分より得点の高い人(JOIN句参照)の集団を指します。 自分より高得点の人が10人いれば、自分は11位という理屈です。 最高得点の人は自分より高得点の人はいないので、カウントは0です。 順位=0は不自然なので、+1しています。
- chukenkenkou
- ベストアンサー率43% (833/1926)
回答No.2
RDBMSは、ここのカテゴリ通りPostgreSQLですか? バージョンは? 行を一意に識別できるキーとなる列は、当然、存在しますよね? 順位は、何に対して付けるのですか? 同点があった場合、どのように順位を付けるのですか?
- chie65536
- ベストアンサー率41% (2512/6032)
回答No.1