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をゼロから学ぶ

推薦する

HTMLフォームタグチュートリアル(1):

フォームは、動的な Web ページを実装するための主要な外部フォームです。フォームとフォーム フィー...

VMware 仮想マシンに固定 IP アドレスを設定する方法 (グラフィック チュートリアル)

1. メニューバーで「編集」→「仮想ネットワーク エディター」を選択して仮想ネットワーク エディタ...

記事では、js を使用して弾幕効果を実現する方法を説明します

目次新しい HTML ファイルを作成します。初期テンプレートを作成するHTML の追加CSS パディ...

WeChatミニプログラムページで値を返す4つの解決策のまとめ

目次使用シナリオ解決1. globalDataを使用して実装する2. ローカルキャッシュストレージを...

Webpack でよく使われる 12 個の Loader を共有する (要約)

目次序文スタイルローダーCSSローダーsassローダーpostcssローダーバベルローダーtsローダ...

Vue+Spring Bootで検証コード機能を実現

この記事では、検証コード機能を実装するためのvue+spring bootの具体的なコードを例として...

トランザクション分離レベルのMySQLケース分析

目次1. 理論シリアル化可能繰り返し読み取りコミットされた読み取りコミットされていない読み取り2. ...

MySQL マスタースレーブレプリケーション 読み書き分離の設定方法の詳細説明

1. 説明前回は、MySQL のインストールと構成、MySQL ステートメントの使用、MySQL デ...

Vue.jsの機能コンポーネントに関する包括的な理解

目次序文React 関数コンポーネントVue (2.x) の機能コンポーネント🌰 例: el-tab...

ドラッグ位置プレビューを実装するネイティブJS

この記事では、要素をドラッグするときにプレビューを追加する小さなデモを紹介します。効果は次のとおりで...

変換を使用して純粋な CSS ポップアップ メニューを実装するためのサンプル コード

序文トップメニューを作成する場合、ポップアップのセカンダリメニューを作成する必要があります。 以前の...

Navicatは機能ソリューション共有を作成できません

初めて MySQL FUNCTION を書いたとき、エラーが何度も発生しました。 Err] 1064...

JavaScriptは両端キューを実装する

この記事の例では、両端キューを実装するためのJavaScriptの具体的なコードを参考までに共有して...

MacOS Catalina アップグレード後の VMware ブラック スクリーン問題に対する完璧な解決策の詳細な説明

MacOS Catalina アップグレード後の VMware ブラック スクリーンに対する完璧なソ...

見栄えの良い CSS カスタム スタイル (タイトル h1 h2 h3)

レンダリングBlog Gardenでよく使われるスタイル /*タイトル h1 h2 h3 スタイル*...