ホームページ >データベース >mysql チュートリアル >Oracle でクエリ結果を連結およびグループ化するにはどうすればよいですか?

Oracle でクエリ結果を連結およびグループ化するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-01 13:42:11248ブラウズ

How Can I Concatenate and Group Query Results in Oracle?

Oracle でのクエリ結果の連結とグループ化

Oracle テーブル内のデータを扱う場合、行の連結とグループ化は、整理と分析に非常に役立ちます。情報。名前と対応するグループ名の列を含むテーブルがあるとします。

Oracle 11g 以降を使用している場合、それぞれのグループ名内で連結された名前を取得するには、LISTAGG 関数を利用できます。

SELECT
group_name,
LISTAGG(name, ', ')
WITHIN GROUP (ORDER BY GROUP) "names"
FROM name_table
GROUP BY group_name

このクエリは、対応するグループ名で名前をグループ化し、連結された名前を返します。ただし、Oracle 11g を使用していない場合は、代わりに分析の使用を検討してください。

select grp,
    ltrim(max(sys_connect_by_path
       (name, ',' )), ',')
        scbp
  from (select name, grp,
            row_number() over
           (partition by grp
            order by name) rn
         from tab
          )
start with rn = 1
connect by prior rn = rn-1
and prior grp = grp
  group by grp
  order by grp

このクエリは、分析を使用してグループ化を処理し、それぞれのグループ名内の名前も連結します。

これらの技術を利用すると、Oracle でデータを効率的に連結およびグループ化できるため、意味のある方法で情報を分析して表示することが容易になります。

以上がOracle でクエリ結果を連結およびグループ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。