これがMySQLで機能するソリューションです。 select句で相関サブクエリを使用して、連結をグループ化しますCol2
値。ロジックは、同じCol1
を共有するレコードの特定のグループについて、現在の行以下の値のみを集計することです。 値。
SELECT
Col1,
(SELECT GROUP_CONCAT(t2.Col2 ORDER BY t2.Col2) FROM yourTable t2
WHERE t2.Col2 <= t1.Col2 AND t1.Col1 = t2.Col1) Col2
FROM yourTable t1
ORDER BY
t1.Col1,
t1.Col2;
Oracleでの同じクエリは次のとおりです。
SELECT
Col1,
(SELECT LISTAGG(t2.Col2, ',') WITHIN GROUP (ORDER BY t2.Col2) FROM yourTable t2
WHERE t2.Col2 <= t1.Col2 AND t1.Col1 = t2.Col1) Col2
FROM yourTable t1
ORDER BY
t1.Col1,
t1.Col2;
実際の変更は、LISTAGG
を置き換えることだけであることに注意してください。 GROUP_CONCAT
の場合 。