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

推薦する

Linux /etc/network/interfaces 設定インターフェース方法

Linux の /etc/network/interfaces ファイルは、ネットワーク インターフ...

mysql の not equal to null と equal to null の書き方の詳細説明

1. テーブル構造 2. 表データ 3. クエリのteacher_nameフィールドは空にすることは...

オンラインチャットを実現するVue+sshフレームワーク

この記事では、オンラインチャットを実現するためのVue + sshフレームワークの具体的なコードを参...

MySQL がデュアルマスターで構成されている場合にデータループの競合を回避する方法

あなたはこの質問について考えたことがあるでしょうか?デュアルアクティブが構成されている場合、データル...

4つのReactコンポーネントにおけるDOMスタイル設定の詳細な説明

1. インラインスタイル仮想DOMにインラインスタイルを追加するには、式を使用してスタイルオブジェク...

Apache ポートに基づいて仮想ホストを作成する例

apache: ポートに基づいて仮想ホストを作成する仮想ホスト(a、b、c)の作成を例に挙げます1)...

MySQLはフィールドからカンマ区切りの値を取り出して新しいフィールドを形成します

1例: 図1のフィールドを図2に分割するには アカウントIDを選択、 サブストリングインデックス(サ...

Vue3 Reactivityの実装方法を教えます

目次序文始めるちょっとした考えコードの実装真似する実装トラックトリガーの実装観察の実装計算の実装序文...

選択にスタイルを追加するための純粋な CSS (スクリプトなし) 実装

通常は ul、li を介して選択のデフォルト スタイルを変更して、実現をシミュレートします。このよう...

Linux での MySQL の文字化け問題の解決方法

プロジェクトはサーバーと対話し、post を通じてサーバー側の jsp にアクセスし、jsp はサー...

dockerにros2をインストールするための詳細な手順

目次メイントピック1. UbuntuにDockerをインストールする2. DockerにROS2-F...

Vueでのバスの使用に関する詳細な説明

Vue バス メカニズム (バス) vuex を使用するだけでなく、vue 内の親子以外のコンポーネ...

bodyタグの主な属性の概要

bgcolor="テキストの色" background="背景画像&q...

XHTML Web ページ チュートリアル

この記事は主に、初心者に XHTML の基本的な知識と、XHTML と HTML の違いを理解しても...

フロントエンドは画像を遅延ロードする方法を知っている必要があります(3つの方法)

目次1. 遅延読み込みとは何ですか? 2. 遅延読み込みを実装する🌄: 2.1 最初の方法: 2.2...