SQL 結果行を複製し、カウント列に基づいて行番号を割り当てるにはどうすればよいですか?
Jan 06, 2025 pm 01:54 PMSQL で行番号を付けて結果行を複製する
多くのデータベース操作では、多くの場合、結果行を展開して一意の番号を割り当てることが必要になります。彼ら。この手法は、行数が異なるデータを扱う場合に特に役立ちます。たとえば、次のデータについて考えてみましょう。
value | count ------+------ foo | 1 bar | 3 baz | 2
このデータを、カウントが 1 より大きい行が繰り返され、各行にインデックスが割り当てられる形式に変換するには、いくつかのアプローチを取ることができます。
数値テーブルの使用
一般的な解決策は、数値テーブルとの結合演算を利用することです。このテーブルには、目的のインデックス作成に使用できる一連の数値が含まれています。
SELECT value, count, number FROM table JOIN Numbers ON table.count >= Numbers.number
このメソッドは、Oracle、SQL Server、MySQL、PostgreSQL など、すべての主要なデータベースに対して目的の出力を生成します。
実装例 (SQL Server)
WITH N AS (SELECT ROW_NUMBER() OVER (ORDER BY object_id) AS number FROM sys.objects) SELECT value, count, number FROM table JOIN N ON table.count >= N.number;
これは変更されましたクエリは、「N」という名前の共通テーブル式 (CTE) を利用して数値テーブルを作成し、目的の出力を実現します。
データベース固有の考慮事項
上記の解決策ではありますが、はデータベース間の互換性がありますが、追加の最適化やパフォーマンス上の利点を提供する、よりデータベース固有のアプローチが存在する可能性があります。特定のデータベース環境については、そのようなオプションを検討することをお勧めします。
以上がSQL 結果行を複製し、カウント列に基づいて行番号を割り当てるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか?

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?
