Her er en løsning, der ville fungere til MySQL. Den bruger en korreleret underforespørgsel i select-sætningen til at gruppere sammenkæde Col2
værdier. Logikken er, at vi kun aggregerer værdier, der er mindre end eller lig med den aktuelle række, for en given gruppe af poster, der deler den samme Col1
værdi.
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;
Her er den samme forespørgsel i 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;
Bemærk, at den eneste reelle ændring er at erstatte LISTAGG
for GROUP_CONCAT
.