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

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

Patricia Arquette
リリース: 2025-01-15 18:34:44
オリジナル
365 人が閲覧しました

How Can I Aggregate Multiple Rows into a Single Row in Oracle SQL?

Oracle SQL で複数の行を 1 つの行に統合する

Oracle SQL には、複数の行を 1 つの行に結合するためのいくつかの方法が用意されています。 1 つのアプローチでは、WM_CONCAT 関数を使用します (注: Oracle 12c 以降では非推奨になりました)。 WM_CONCAT は、特定の列内の複数の行の値を連結します:

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

WM_CONCAT が使用できない Oracle バージョンの場合、カスタム集計関数が実行可能なソリューションを提供します。 このような文字列集計関数の作成に関する詳細なガイダンスは、Oracle-base.com などのリソースで参照できます。 基本的な例:

<code class="language-sql">CREATE FUNCTION String_Agg(VALUES VARCHAR2, DELIM VARCHAR2) RETURN VARCHAR2;
-- Function implementation details here</code>
ログイン後にコピー

このカスタム関数では文字列値の集計が可能です:

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

WM_CONCAT (該当する場合) とカスタム集計関数は両方とも、複数の行を 1 つの行に効果的に統合し、データをより簡潔かつ整理された方法で表示します。

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

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