MySQL の集計関数: Oracle の LISTAGG 機能の複製
Oracle の LISTAGG 関数は、複数の値を単一の区切られた文字列に集計する便利な方法を提供します。 MySQL でも同様のものを提供できますか?
問題の定式化:
ユーザーは、文字列のリストを連結する Oracle LISTAGG 関数をエミュレートする関数を MySQL で作成しようとしています。カンマ区切りの文字列。
サンプル データと予想されるデータ出力:
次のサンプル データは、目的の機能を示しています。
Id MyString 1 First 2 Second 3 Third 4 Fourth
仮想の LISTAGG 操作に対応する目的の出力は、次のようになります:
myList First, Second, Third
解決策: 明らかにするGROUP_CONCAT()
MySQL で LISTAGG 機能を複製するには、ユーザーは GROUP_CONCAT() 関数を利用できます。この関数は、複数の行を 1 つの連結文字列に集約します。
次のクエリは期待どおりの結果を実現します:
SELECT GROUP_CONCAT(MyString SEPARATOR ', ') AS myList FROM table WHERE id < 4;
追加機能:
GROUP_CONCAT () は追加の機能を提供します。ユーザーは、任意の区切り文字を指定し、個別の値のみを有効にし、結果を列ごとにグループ化できます。
GROUP_CONCAT() 関数を利用することで、ユーザーは MySQL で Oracle のような集計機能にアクセスでき、簡単に連結できるようになります。複数の値を単一の区切り文字列にまとめます。
以上がMySQL は文字列集計用の Oracle の LISTAGG 関数を複製できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。