質問 |
||
| QNo.3987327 | 順位を求めるSELECT文 | |
|---|---|---|
| 質問者:mukkudesu |
順位を求めるSELECT文はどう記述すればいいのでしょうか? ご教授お願いします。 |
|
困り度:
|
||
| 質問投稿日時: 08/04/30 14:01 |
||
回答 |
|
| ANo.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しています。 |
|---|---|
| 回答者:nda23 | |
| 種類:アドバイス どんな人:専門家 自信:自信あり |
|
| 回答日時: 08/05/07 11:00 |
|
| |
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| ANo.2 | RDBMSは、ここのカテゴリ通りPostgreSQLですか? バージョンは? 行を一意に識別できるキーとなる列は、当然、存在しますよね? 順位は、何に対して付けるのですか? 同点があった場合、どのように順位を付けるのですか? |
|---|---|
| 回答者:chukenkenkou | |
| 種類:補足要求 どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/05/01 19:00 |
|
| |
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| ANo.1 | http://www.accessclub.jp/search1/namazu.cgi?query=%8F%87%88%CA |
|---|---|
| 回答者:chie65536 | |
| 種類:回答 どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/04/30 16:35 |
|
| |
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |