MySQLにおけるrow_numberの実装プロセス

MySQLにおけるrow_numberの実装プロセス

1. 背景

一般的に、データ ウェアハウス環境では、row_number 関数を使用して特定のディメンションに従ってデータをグループ化し、各グループ内のデータ番号を並べ替える効果を簡単に実現できます。下の図に示すように、これは MySQL 環境で生成された効果図です。ここでのグループ化は lcid に基づいており、num は row_number 関数によって達成される効果に相当します。

MySQL環境でrow_number効果を実装する

2. 実施プロセス

1. MySQL変数を設定する

2つの変数を設定する

set @row_number:=0; --lcid_no の判定結果に従って row_number シーケンス番号を生成します。set @lcid_no:= 0; --各行の lcid 列データを取得し、前の行の lcid データと比較します。同じ場合は 1 増加し、そうでない場合は 1 になります。

2. 使用例

SELECT @行番号:=CASE
    @lcid_no = s.lcid の場合、@row_number + 1 
    その他 1
    END AS num、
    @lcid_no:=s.lcid AS lcid、
	  s.lcid
r_qcloud_approval_fh_d s から、(@orw_number:=0、@lcid_no:=0 を選択) t
ORDER BY s.lcid;

3. プロセス分析<br /> 同一データが複数ある場合
1) 初期状態では、カーソルは最初のデータを指し示しています。この時点では、lcid_no = 0 であり、lcid_no は lcid と等しくないため、row_number = 1 となります。
2) カーソルは2番目のデータを指し、lcid_no = 前のデータの lcid です。前のデータの lcid = 現在の行の lcid なので、row_number = 2 です。
重複データなし
1) 初期状態では、カーソルは最初のデータを指し示しています。この時点では、lcid_no = 0 であり、lcid_no は lcid と等しくないため、row_number = 1 となります。

3. 使用シナリオ

MySQL のようなリレーショナル データベースには row_number 関数はありません。

これで、MySQL の row_number の実装プロセスに関するこの記事は終了です。MySQL の row_number に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MYSQL row_number() および over() 関数の詳細な使用方法
  • PostgreSQL ROW_NUMBER() OVER() の使用方法の説明
  • postgreSQL での row_number() と distinct の使用
  • Postgresql の rank() over、dense_rank()、row_number() の使用法の違い
  • SQL Server の row_number 関数の一般的な使用例の詳細
  • 4 つの主要な SQL ランキング関数 ROW_NUMBER、RANK、DENSE_RANK、NTILE の使用方法の紹介
  • SQL ROW_NUMBER() および OVER() メソッドのケーススタディ

<<:  deepin apt コマンドを使用して最新バージョンの docker をインストールする方法

>>:  Node.jsをゼロから学ぶ

推薦する

CSS3 を使用した SVG パス ストロークのアニメーション化入門チュートリアル

JavaScript に依存せず、純粋な CSS を使用してsvgストローク描画アニメーション効果と...

Vueは3段階のナビゲーション表示と非表示を実装します

この記事では、3階層ナビゲーションの表示と非表示を実現するためのVueの具体的なコードを例として紹介...

jsでユーザー登録機能を実装する

この記事の例では、ユーザー登録機能を実装するためのjsの具体的なコードを参考までに共有しています。具...

画像をMySQLデータベースに保存し、フロントエンドページに表示するための実装コード

目次1. まず、pycharmを使用してDjangoプロジェクトを作成し、関連する環境を設定します。...

優秀なウェブ開発者が開発スキルを向上させるために知っておくべき10のこと

「開発とは、単にコードを書くだけではない」というのは、3EV の Dan Frost 氏の言葉です。...

Vue で AES.js を使用する詳細な手順

AES暗号化の使用データ転送の暗号化と復号化処理 --- AES.js最初のステップ: vue に ...

HTML+CSSは、要素の位置までスクロールして読み込みアニメーション効果を表示します。

要素までスクロールするたびに読み込みアニメーションを追加するにはどうすればよいですか?初期パラメータ...

Centos7.4 サーバーへの Apache のインストールとインストール プロセス中に発生した問題の解決策

この記事では、CentOS 7.4 サーバーに Apache をインストールする方法と、インストール...

CentOS 8 に MySql をインストールしてリモート接続を許可する方法

ダウンロードしてインストールします。まず、システムに MySQL または MariaDB があるかど...

CocosCreatorでスワイプした位置にテクスチャを表示する方法

目次1. プロジェクト要件2. 文書の内容3. プロジェクト例4. プロジェクトコード1. プロジェ...

CSS を使用して画像の色を変更する 100 の方法 (収集する価値あり)

序文「画像処理というと、PhotoShop などの画像処理ツールを思い浮かべることが多いです。フロン...

MySQLデータベース最適化技術の簡単な紹介

成熟したデータベース アーキテクチャは、最初から高可用性、高スケーラビリティなどの機能を備えて設計さ...

サーバー上で selenium+chromedriver を実行するための詳細なチュートリアル

1. はじめにSelenium を使用して Web サイトからデータをスクレイピングしたいのですが、...

nginxを使用して取得したIPアドレスが127.0.0.1である問題を解決する

IPツールを取得 lombok.extern.slf4j.Slf4j をインポートします。 org....

Linux システムで MySQL データベースの解凍バージョンをインストールして構成する方法

1. ファイルを現在のディレクトリに解凍しますコマンド: tar -zxvf mysql....ta...