ホームページ > データベース > mysql チュートリアル > Oracle SQLで複数の行を1つに集約するにはどうすればよいですか?

Oracle SQLで複数の行を1つに集約するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-15 18:38:46
オリジナル
778 人が閲覧しました

How to Aggregate Multiple Rows into One in Oracle SQL?

Oracle SQL: 複数行のデータを 1 行に結合します

データセットが特定の列で構成されている場合、複数の行を 1 つの行にマージする必要がある場合があります。これは、SQL のデータ集計操作を通じて実現できます。

Oracle SQL では、WM_CONCAT 関数を使用すると、複数の値行を結合する簡単な方法が提供されます。ただし、この関数はサポート対象外としてマークされ、Oracle 12c 以降では削除されたことに注意してください。

WM_CONCAT メソッド (Oracle 12c より前)

Oracle 12c より前では、WM_CONCAT を使用して値を集計できました:

<code class="language-sql">SELECT field1, WM_CONCAT(field2) FROM YourTable GROUP BY field1;</code>
ログイン後にコピー

代替: LISTAGG (Oracle 12c 以降)

Oracle 12c 以降のデータベースの場合、LISTAGGWM_CONCAT の代替手段を提供します。この関数は、文字列集約タスクに特化した拡張機能を提供します:

<code class="language-sql">SELECT field1, LISTAGG(field2, ',') WITHIN GROUP (ORDER BY field2) FROM YourTable GROUP BY field1;</code>
ログイン後にコピー

カスタム実装

WM_CONCATLISTAGG も存在しない場合は、サブクエリと文字列操作関数を組み合わせてカスタム実装を作成できます。 関連リンク (oracle-base.com など) には、この方法の詳細な手順が記載されています。

以上がOracle SQLで複数の行を1つに集約するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート