コードは次のようになります。 SELECT @i:=@i+1 行番号、 if(@total=t.s_score,@rank,@rank:=@i) ランク、@total:=t.s_score、 t.* から( 学生 t1 から t1.*、t2.s_score を選択し、t1.s_id=t2.s_id かつ t2.c_id="01" で score t2 を LEFT JOIN し、t2.s_score desc で ORDER BY します。 )t、(@i:=0、@rank:=0、@total:=null を選択) s ; SELECT @i:=@i+1 行番号、 if(@total=t.s_score,@rank,@rank:=@rank+1) ランク、@total:=t.s_score、 t.* から( 学生 t1 から t1.*、t2.s_score を選択し、t1.s_id=t2.s_id かつ t2.c_id="01" で score t2 を LEFT JOIN し、t2.s_score desc で ORDER BY します。 )t、(@i:=0、@rank:=0、@total:=null を選択) s ; 成績がソートされた後、Mysqlがランキングを取得します 実際には、mysqlソート後の行番号を出力します RT: すべてのユーザーのスコアの中で特定のユーザーのスコアの順位を取得します それは 2 つのステップに分けられます: 1. すべてのユーザーとそのパフォーマンスランキングを見つける id、maxScore、(@rowNum:=@rowNum+1) を rowNo として選択します t_userより、 (選択 (@rowNum :=0) ) b t_user.maxScore の降順で並べ替え 2. すべてのユーザーのスコアの中でのユーザーの順位を調べる (からu.rowNoを選択 id、(@rowNum:=@rowNum+1) を rowNo として選択します t_userより、 (選択 (@rowNum :=0) ) b t_user.maxScore desc ) u で並べ替え、u.id="2015091810371700001" の場合; 要約する 上記は編集者が紹介したMysqlのソートとランキング取得です。皆様のお役に立てれば幸いです。ご質問があればメッセージを残してください。編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: Webstorm と Chrome を使用して Vue プロジェクトをデバッグする方法
>>: Linux システムによって報告される xfs_vm_releasepage 警告問題に対処する方法
Docker-compose は GitLab をデプロイします1. Dockerをインストールする...
WeChatミニプログラムはますます人気が高まっています。多くの大学生が独学で学んでいるのも見てきま...
以下はcentos7での設定方法ですsystemc ソース パッケージをダウンロード: System...
コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...
現象:イメージを実行します (例: ubuntu14.04)。 docker run -it --r...
apk add ansible を使用して、alpine イメージに ansible サービスを追加...
目次序文1. システムサービス制御1. システムctl 2. ターゲット3. 共通システムサービス4...
MySQL 5.7.20 zipインストール、具体的な内容は次のとおりです(1)圧縮パッケージを解凍...
これを実現するには、次のコードを追加するだけです。方法1: メタを使用する使用方法: <Met...
目次1. コンストラクタとインスタンス化2. コンストラクターとインスタンス化の関係は何ですか? 3...
今はモバイルインターネットが急速に発展している時代です。スマートフォンやタブレットはますます普及し、...
この記事では、二次リンク効果を実現するためのReact+tsの具体的なコードを参考までに共有します。...
かなりの数のウェブサイトがデジタルページング効果を使用しています。たとえば、このサイトのページングも...
この記事では、ドラッグ可能なプログレスバーを実装するためのJavaScriptの具体的なコードを参考...
ここに <input type="image"> がある場合、この画...