Mysqlチュートリアルでのグループランキングの実装例の詳細な説明

Mysqlチュートリアルでのグループランキングの実装例の詳細な説明

1. データソース

ここに画像の説明を挿入

2. データの総合順位

1) 総合ランキング

数字は 1 から始まり、順に下方にランク付けされます (同じ値でもランクが異なります)。

@rank を 0 に設定します。
選択 
	都市、
	スコア、 
	@rank := @rank+1 ランク 
csから 
スコア降順で並び替え;

結果は次のとおりです。

ここに画像の説明を挿入

2) 同順位

同一の値は同じランクを持ちます(ただし、空きスロットは残りません)。

@rank=0、@price=null を設定します。
cs.* を選択し、
 @price = score の場合、@rank 
 @price := score の場合、@rank := @rank+1 でランクが終了します  
 cs からスコア降順で並び替えます。
 -- クエリスコア値が@priceの場合、@rankを出力します。
 -- 等しくない場合は、スコア値を@priceに割り当て、@rank := @rank+1を出力します。
 
-- または @rank=0、@price=null を設定します。
選択 
	都市、スコア、ランク 
から 
(cs.*を選択、
	@rank := if(@p=スコア、@rank、@rank+1) ランク、
	@p := スコア
csから 
スコア順(降順) a;

結果は次のとおりです。

ここに画像の説明を挿入

3) 同順位

同じ値は同じランクを持ちます (ただし空白が残ります)。

@rank=0、@price=null、@z=1 を設定します。
選択 
	都市、スコア、ランク 
から 
(選択 
	cs.*,
	@rank := if(@p=スコア、@rank、@z) ランク、
	@p := スコア、@z :=@z+1
csから 
スコア順(降順) a;

結果は次のとおりです。

ここに画像の説明を挿入

3. データのグループ化後のグループ内ランキング

1) グループ総合順位

数字は 1 から始まり、順に下方にランク付けされます (同じ値でもランクが異なります)。

@rank=0、@c=null を設定します。
選択 
	cs.city、cs.score、
	@rank := if(@c = city,@rank+1,1) ランク、
	@c := 都市
csから 
cs.city、cs.score で並べ替えます。

結果は次のとおりです。

ここに画像の説明を挿入

2) グループ分け後の同順位

グループ内で同じ値を持つ項目は同じ順位を持ち、空の位置を占有しません。

@rank=0、@c=null、@s=null を設定します。
選択 
	cs.city、cs.score、
	@rank := if(@c=city,if(@s=score,@rank,@rank+1),1) ランク、
	@c := 都市、
	@s :=スコア 
csから 
cs.city、cs.score で並べ替えます。

結果は次のとおりです。

ここに画像の説明を挿入

3) グループ分け後の同順位

グループ内で同じ値を持つ項目は同じ順位を持ち、空の位置を占める必要があります。

@rank=0、@c=null、@s=null を設定します。
選択 
	cs.city、cs.score、
	@rank := if(@c=city,if(@s=score,@rank,@rank+1),1) ランク、
	@c := 都市、
	@s :=スコア 
csから 
cs.city、cs.score で並べ替えます。

結果は次のとおりです。

ここに画像の説明を挿入

4. グループ分け後、各グループの上位2つを取ります

①方法1:3つの方法でグループ化して順位付けし、順位値を制限する

@rank=0、@z=0、@c=null、@s=null を設定します。
a.city、a.score、a.rankから選択 
(選択 
	cs.city 都市、cs.score スコア、
	@z := if(@c=city,@z+1,1)、
	@rank := if(@c=city,if(@s=score,@rank,@z),1) ランク、
	@c := 都市、
	@s :=スコア 
csから 
cs.city、cs.score desc で並び替える
ここで、a.rank<=2;

結果は次のとおりです。

ここに画像の説明を挿入

② 社内調査

cs cから*を選択
どこ (
    count(*) を cs から選択します
    c.city=cs.city かつ c.score<cs.score )<2 の場合
都市、スコア、降順で並べ替え;

結果は次のとおりです。

ここに画像の説明を挿入

上記コードの実行原理は次のとおりです。

ここに画像の説明を挿入

上記はMysqlチュートリアルグループランキング実装例の詳細な内容です。Mysqlグループランキングの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MySQLのSQL文の分類を数える
  • MySQL 分類ランキングとグループ化 TOP N の例の詳細な説明

<<:  HTML でファイルをアップロードするときに使用する <input type="file"> 要素のスタイルをカスタマイズします。

>>:  Linux の一般的なハードディスク管理コマンドの紹介

推薦する

CSSを使用してアダプティブスクエアを実装する方法の例

伝統的な方法は、正方形を固定形式で書くことです。長さ=幅を直接書き、次のように固定値を書きます。 。...

JavaScript における this ポイントの問題の詳細な説明

要約する地球環境 ➡️ ウィンドウ通常関数 ➡️ ウィンドウまたは未定義コンストラクター ➡️ 構築...

Linux サーバー上の hosts ファイル構成の詳細な説明

Linux サーバーのホスト ファイルの構成hosts ファイルは、Linux システム内の IP ...

Docker を使用した Laravel アプリケーションのデプロイ例

この記事で使用されているPHPベースイメージはphp:7.3-apacheです。この記事の Lara...

JavaScript は単一のリンクリストプロセス分析を実装します

序文:複数の要素を格納するために、配列は最も一般的に使用されるデータ構造ですが、配列には多くの欠点も...

CSS3 border-radius 丸角の実装方法と使い方の詳しい説明

以前は、角を丸くするのは非常に面倒でしたが、CSS3 では、角を丸くするのは非常に簡単になり、bor...

MySQL の高可用性アーキテクチャの完全な説明: MHA アーキテクチャ

目次1. はじめに2. 構成3. 作業プロセス4. 建築5. 表示例MHA (Master HA) ...

MySQL インデックスの左端原則のサンプルコード

序文最近、MySQL のインデックスについて読んでいました。結合されたインデックスを見ると、左端の原...

W3Cチュートリアル(1):W3Cを理解する

1994 年に設立された組織である W3C は、共通プロトコルの開発を促進し、それらの相互運用性を確...

CSS で「プラス記号」効果を実装するためのサンプルコード

以下に示すプラス記号の効果を実現するには: この効果を実現するには、div 要素だけが必要です。 b...

MySQL InnoDB インデックス拡張の詳細な説明

インデックス拡張: InnoDB は、プライマリ キー列をそのインデックスに追加することで、各セカン...

Tomcat を再デプロイした後にイメージやその他のリソースが自動的に削除される問題を解決します

昨日は写真をアップロードしてリンクを返す機能を実装していました。プロジェクトが Tomcat に再デ...

IE8でラベルの背景画像が表示されない問題の解決方法

今日、ちょっとした問題に遭遇し、長い間苦労しました。そのことを皆さんにシェアしたいと思います。 a ...

ワンクリックで雨や雪のエフェクトを実現する ThingJS パーティクルエフェクト

目次1. パーティクルエフェクト2. シーンを読み込む3. さまざまな粒子効果の実現エンディング: ...

jQuery ベースのカレンダー効果

この記事では、カレンダー効果を実現するためのjQueryの具体的なコードを例として紹介します。具体的...