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 の一般的なハードディスク管理コマンドの紹介

推薦する

CSS3マスクレイヤーのくり抜き効果を実現するさまざまな方法

この記事では、マスク レイヤーの中空化を実現する 4 つの方法を紹介します。みんなと共有し、自分用の...

親要素に対する CSS 子要素の固定配置ソリューションの詳細な説明

基本概念絶対配置: 絶対配置に設定された要素ボックスはドキュメント フローから完全に削除され、その包...

ウェブデザインスキル:中国語と英語が混在するウェブページの上位表示の問題

<br />私はこの問題で気が狂いそうです。症状は次のとおりです。 症状の説明: Int...

Web プロジェクト開発 VUE の混合と継承の原則

目次ミキシンMixin ノート (重複名)ローカルミックスイングローバル ミックスイン定義とグローバ...

Tomcat+Mysql の高同時実行構成の最適化の説明

1.Tomcatの最適化構成(1)Tomcatのcatalina.batを変更するJavaをサーバー...

nginxディレクトリパスをリダイレクトする方法

ドメイン名に続くパスがデフォルトの Web ディレクトリではなく、ローカル ディスク上の他のディレク...

MySQL クエリの最適化: クエリが遅い原因と解決策

開発に携わっている友人、特に MySQL に関係のある友人は、非常に遅い MySQL クエリに遭遇す...

MySQLキーワードDistinctの詳細な紹介

MySQLキーワードDistinctの使い方の紹介DDL SQLを準備します: テーブルテストを作成...

単一のdivの正多角形変換を実現する純粋なCSS

前回の記事では、beforeとafterの擬似要素を使用してMaterial Designスタイルの...

アダプティブ Web デザインを実現する方法に関する関連知識ポイントの要約

「アダプティブ Web デザイン」はどのように機能しますか?実はそれほど難しいことではありません。 ...

MySQL 8.0.12 winx64 解凍バージョンのインストール グラフィック チュートリアル

mysql-8.0.12-winx64 解凍版のインストールを記録して、みんなで共有しました。 1....

CSSインジェクションの知識の要約

最近のブラウザでは、CSS 内で JavaScript を実行することはできなくなりました。以前は、...

仮想マシンのディスクサイズを拡張する方法

Vmvare が仮想マシンのディスク サイズを設定した後、ディスク領域が不足していることがわかりまし...

ボタンをクリックして画像を切り替える JavaScript

この記事の例では、ボタンをクリックすることで画像を切り替えることを実現するJavaScriptの具体...

docker に基づいて nginxssl 設定を開始する

前提条件クラウドサーバー(Alibaba Cloud、Tencent CloudなどのcentOS)...