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

推薦する

HTML要素のID属性とName属性の違い

今日、私は <a href="#13"></a> につい...

Vueライフサイクルカメラの8つのフック関数

目次1. beforeCreateとcreated関数2. beforeMountとmount関数3...

Douyin ロゴを作成する手順の CSS3 分析

「Tik Tok」も大人気で、ユーザー数は7億人と言われています。今日は、注目を集めるためにTikT...

Centos7 で crontab + シェル スクリプトによる定期的な自動ファイル削除の問題を解決する

問題の説明:最近、rsyncで毎回同期するデータ量が多いが、データベースのbakファイルを保持する必...

Ubuntu 18.04 のログインループ/ブートインターフェイスで停止/グラフィカルインターフェイスに入ることができない問題を解決する方法

原因: NVIDIA グラフィック カード ドライバーが破損している解決:コマンドラインモードで再起...

JavaScriptはスクロールバーの位置を取得し、ページをアンカーポイントまでスライドします。

序文この記事は、私が最近仕事で遭遇した問題を記録したものです。アプリネイティブとフロントエンドのh5...

ウェブ理論: 考えさせない読書ノート

第 1 章<br /> Web ページをユーザーにとって使いやすいものにするための最も重...

Linux で NFS のワンクリック展開を実装する方法

サーバー情報管理サーバー: m01 172.16.1.61サーバー: nfs01 172.16.1....

MySQL でデータ テーブルを作成し、主キーと外部キーの関係を確立する方法の詳細な説明

序文MySQL テーブルの主キーと外部キーを作成するときは、次の点に注意する必要があります。主キーと...

2つのLinuxサーバー間でファイルとフォルダを転送する手順

今日、私はプロジェクトの移行の問題に取り組んでいましたが、突然、大量の写真をどうやって移動したらよい...

HTML テーブルタグチュートリアル (27): セルの背景画像属性 BACKGROUND

セルの背景画像を設定でき、任意の GIF または JPEG 画像ファイルを使用できます。基本的な構文...

K8Sの5つのコントローラーの紹介と使用

目次k8sのコントローラータイプポッドとコントローラの関係デプロイメント(ステートレスアプリケーショ...

ElementUI の this.$notify.close() 呼び出しが機能しない問題の解決方法

目次要件の説明問題の説明問題分析問題解決質問の拡張要件の説明このプロジェクトでは、まずユーザーが質問...

MySQL 5.7 および 8.0 データベースのルート パスワードを忘れた場合の解決策

注: MySQL5.7 で root パスワードをクラックするには、パスワード認証をスキップしてデー...

CSS3 のフィルタプロパティの使用に関する詳細な説明

最近、イントラネットポータルを修正していたときに、フィルターを使用する必要がある箇所に遭遇しました。...