ランキングを取得するためのMySQLソートの例コード

ランキングを取得するためのMySQLソートの例コード

コードは次のようになります。

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 ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • MYSQL は、指定されたユーザーのランキングとクエリを実装します。ランキング関数 (並列ランキング関数) のサンプルコード
  • MySQL ページアクセス統計とランキング
  • MySQL でカスタム フィールド クエリ結果にランキングを追加する方法
  • MySQL のグループ化により、group by と order by の調査で各グループの最初の数件のレコードを取得します (ランキング)
  • MySQL における一般的なランキングの問題をいくつかまとめます

<<:  Webstorm と Chrome を使用して Vue プロジェクトをデバッグする方法

>>:  Linux システムによって報告される xfs_vm_releasepage 警告問題に対処する方法

推薦する

SQL における参照整合性の詳細な説明 (1 対 1、1 対多、多対多)

1. 参照整合性参照整合性とは、主に外部キー制約を使用した複数のテーブル間の設計を指します。複数テ...

MySQL シャーディングの詳細

1. ビジネスシナリオの紹介MySQLを使用する電子商取引システムがあるとします。大量のデータを保存...

MySQLデータ遅延ジャンプの問題の解決策

今日は、データベース遅延ジャンプに関する別の典型的な問題を分析しました。このプロセスでは、参考のため...

画像マーキー効果を実現するネイティブJS

今日は、ネイティブ JS で実装された画像マーキー効果を紹介します。効果は次のとおりです。 実装され...

CSS 変数に基づくテーマ切り替えに最適なソリューション (推奨)

この要件を受け取ったとき、Baidu は、CSS リンクの置き換え、className の変更、le...

MySQLのバックアップとリカバリの詳細な説明

序文:前回の記事では、さまざまな MySQL ステートメント構文の使用法とユーザー権限に関する知識を...

MySQLの基本を素早く学ぶ

目次SQLを理解するSELECTを理解するエイリアス定数をクエリし、固定定数列を追加します。重複行を...

4種類のMySQL接続とマルチテーブルクエリの詳細な説明

目次MySQL 内部結合、左結合、右結合、外部結合、複数テーブルクエリビルド環境: 1. 内なる慈恩...

CSSのoutline-offsetプロパティを使用してプラス記号を実装する

次のような初期コードがあると仮定します。 <!DOCTYPE html> <htm...

Node.jsミドルウェアの仕組みの詳細な説明

目次Express ミドルウェアとは何ですか? Expressミドルウェアを作成するための要件Exp...

MySQL の FIND_IN_SET() と IN の違いを簡単に分析します

以前、あるプロジェクトでMysql FIND_IN_SET関数を使用したことがありますが、非常に便利...

Vue シングルページ SEO の 4 つのソリューションについての簡単な説明

目次1.Nuxtサーバーサイドレンダリングアプリケーションの展開(SSRサーバーレンダリング)利点:...

CentOS6.5にpython3.7をインストールする詳細な手順

1. Python 3をダウンロードする https://www.python.org/ftp/py...

mysqlはコンマに基づいてデータ行を複数の行に分割します

目次分離効果コマンドラインの説明関与する機能分離効果-- 別居前1,2,3,4 -- 別居後1 2 ...