MySQL 集計関数: List
MySQL では、Oracle で使用される LISTAGG() 関数は使用できません。ただし、GROUP_CONCAT() 関数を使用して同様の機能を実現できます。この集計関数は、複数の行の値を 1 つの文字列に結合します。
Oracle の LISTAGG() 関数の動作を複製するには、次のように GROUP_CONCAT() を使用できます。
SELECT GROUP_CONCAT(MyString SEPARATOR ', ') AS myList FROM table WHERE id < 4;
このクエリId 列が 4 未満であるすべての行の MyString 列の値を連結し、カンマで区切ります。結果は、次の値を含む単一の文字列になります。
First, Second, Third
必要に応じて、結果を異なる列ごとにグループ化し、階層リストを作成できます。たとえば、結果を親列ごとにグループ化するには、次を使用できます。
SELECT GROUP_CONCAT(MyString SEPARATOR ', ') AS myList FROM table GROUP BY parent_column;
これにより、parent_column 内の各一意の値の文字列のリストが生成されます。
以上がOracle の LISTAGG() 関数を MySQL でレプリケートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。