アプリ版:「スタンプのみでお礼する」機能のリリースについて

順位を求めるSELECT文はどう記述すればいいのでしょうか?
ご教授お願いします。

A 回答 (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しています。
    • good
    • 0

RDBMSは、ここのカテゴリ通りPostgreSQLですか?


バージョンは?

行を一意に識別できるキーとなる列は、当然、存在しますよね?
順位は、何に対して付けるのですか?
同点があった場合、どのように順位を付けるのですか?
    • good
    • 0
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す