ランキングを取得するための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 警告問題に対処する方法

推薦する

ハンドラー PageHandlerFactory-Integrated のモジュール リストに不正なモジュール ManagedPipelineHandler が含まれています

Web プロジェクトを開発する場合、IIS をインストールする必要があります。IIS がインストール...

Linux に mysql をインストールするときに /etc に my.cnf ファイルがない問題を解決する

今日、mysql ポートを変更したいと思ったのですが、/etc/ ディレクトリに my.cnf ファ...

Docker で Java 8 Spring Boot アプリケーションを開発する方法

この記事では、ローカル マシンに Java 8 をインストールせずに、Java 8 を使用して簡単な...

Vue エクスポート Excel 機能の全プロセス記録

目次1. フロントエンドのリーディングプロセス: 2. プラグインの使用と初期化2.1 vue-ad...

MySQLインデックスが失敗するいくつかの状況の分析

1. 最左プレフィックス原則 - 複数の列にインデックスが付けられている場合は、最左プレフィックス原...

ネイティブ js カスタム右クリック メニュー

この記事の例では、参考のためにjsカスタム右クリックメニューの具体的なコードを共有しています。具体的...

Ubuntu16.04はphp5.6ウェブサーバー環境を構築します

Ubuntu 16.04 はデフォルトで PHP7.0 環境をインストールしますが、PHP7 は一部...

HTML の基礎_一般的なタグ、共通タグ、表

パート 1 HTML <html> -- 開始タグ<ヘッド>ウェブページ上の...

K3s 入門ガイド - Docker で K3s を実行するための詳細なチュートリアル

k3dとは何ですか? k3d は、Docker で K3s クラスターを実行するための小さなプログ...

MySQL mysqladmin クライアントの使用の概要

目次1. サーバーの状態を確認します。 2. ルートパスワードを変更します。 3. mysqlser...

一般的な JavaScript 文字列メソッド 28 個と使用方法のヒントのまとめ

目次序文1. 文字列の長さを取得する2. 文字列の指定された位置の値を取得する(1) charAt(...

Nodejs での WeChat アプレット メッセージ プッシュの実装

サブスクリプションメッセージテンプレートを選択または作成するWeChat アプレットにログインし、「...

MySQLデータベースでサポートされているストレージエンジンの比較

目次ストレージエンジンMySQL でサポートされているストレージ エンジン同時実行制御ロック粒子をロ...

ユーザーはその理由を知る必要がある

証券会社にいた頃、設計業務が忙しくなかったため、商品のマニュアルを書く役割を担ったことがありました。...

MySQL での数値のフォーマットの詳細な説明

最近、仕事の都合で、MySQL で数字をフォーマットする必要がありましたが、インターネット上にはほと...