コードは次のようになります。 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 警告問題に対処する方法
Web プロジェクトを開発する場合、IIS をインストールする必要があります。IIS がインストール...
今日、mysql ポートを変更したいと思ったのですが、/etc/ ディレクトリに my.cnf ファ...
この記事では、ローカル マシンに Java 8 をインストールせずに、Java 8 を使用して簡単な...
目次1. フロントエンドのリーディングプロセス: 2. プラグインの使用と初期化2.1 vue-ad...
1. 最左プレフィックス原則 - 複数の列にインデックスが付けられている場合は、最左プレフィックス原...
この記事の例では、参考のためにjsカスタム右クリックメニューの具体的なコードを共有しています。具体的...
Ubuntu 16.04 はデフォルトで PHP7.0 環境をインストールしますが、PHP7 は一部...
パート 1 HTML <html> -- 開始タグ<ヘッド>ウェブページ上の...
k3dとは何ですか? k3d は、Docker で K3s クラスターを実行するための小さなプログ...
目次1. サーバーの状態を確認します。 2. ルートパスワードを変更します。 3. mysqlser...
目次序文1. 文字列の長さを取得する2. 文字列の指定された位置の値を取得する(1) charAt(...
サブスクリプションメッセージテンプレートを選択または作成するWeChat アプレットにログインし、「...
目次ストレージエンジンMySQL でサポートされているストレージ エンジン同時実行制御ロック粒子をロ...
証券会社にいた頃、設計業務が忙しくなかったため、商品のマニュアルを書く役割を担ったことがありました。...
最近、仕事の都合で、MySQL で数字をフォーマットする必要がありましたが、インターネット上にはほと...