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

推薦する

MySqlのインストールとアンインストールに関する詳細なチュートリアル

この記事では、MySqlのインストールとアンインストールのチュートリアルを参考までに紹介します。具体...

CentOS7環境でDockerを使ってPHP動作環境を構築する手順を詳しく解説

関連記事: CentOS7でyumを使用してDockerをインストールするDockerを使ってWin...

MySQL は、現在のデータ テーブル内のすべての時間に対して指定された時間間隔を増加または減少させます (推奨)

DATE_ADD() 関数は、指定された時間間隔を日付に追加します。現在のテーブル内のすべてのデー...

mysql8でルートユーザーのパスワードをリセットする手順を完了します

序文最近、多くの新しい同僚がこの質問をしてきました。特に、homebrew を通じて自動的にインスト...

XHTML コードで Marquee タグを使用する方法

フォーラムで、ネットユーザーの jeanjean20 が、Marquee を標準に適合させる方法につ...

CSS における px、em、rem、pt の特徴、違い、変換について詳しく説明します。

コンセプト紹介: 1. px (ピクセル):仮想的な長さの単位で、コンピュータ システムのデジタル画...

複数サーバーの負荷分散を実現するためのNginx構成

Nginx ロード バランシング サーバー: IP: 192.168.0.4 (Nginx-Serv...

mysqlは内部コマンドエラーの解決策ではありません

「mysqlは内部コマンドではありません」というエラーは、mysqlのbinディレクトリパスが環境変...

JSは画像の滝の流れの効果を実現します

この記事では、画像ウォーターフォールフローを実現するためのJSの具体的なコードを参考までに共有します...

Win10 インストール Linux システム チュートリアル ダイアグラム

Windows システムに仮想マシンをインストールするには、 VMware Workstationソ...

Centos ベースイメージの作成方法

序文現在、私の会社で使用しているオペレーティングシステムはすべて CentOS7.4 で、アプリケー...

163 メールボックスログインボックスインタラクティブデザインの改善体験と共有

LOFTER のコンテストで、ログイン ボックスを再設計できると言及されているのを見ました。過去 2...

EclipseでTomcatを作成する原理の詳細な説明

ローカルEclipse上にTomcatサーバーを作成する場合、 tomcaインストールディレクトリの...

Linux での rpm、yum、ソースコードの 3 つのインストール方法の詳細な紹介

第1章 ソースコードのインストールRPM パッケージは特定のシステムとプラットフォームに応じて指定さ...

Vue で lodop 印刷コントロールを使用してブラウザ互換の印刷を実現する方法

序文このコントロールを直接印刷すると下部に透かしが入りますが、公式 Web サイトから購入することで...