/ / Połącz wiersze, na podstawie wspólnej kolumny Oracle - sql, oracle, concatenation

Połącz wiersze, w oparciu o wspólną kolumnę Oracle - sql, Oracle, konkatenacja

Muszę połączyć poniższe dane

a b c
1 Text 22-03-2015
1 Text1 22-03-2015
2 Text2 24-05-2015
3 Text5 29-05-2015
1 Text11 23-03-2015

Oczekiwany wynik to

a b c
1 Text,text1 22-03-2015
1 Text11 23-03-2016
2 Text2 24-05-2015
3 Text5 29-05-2015

Wypróbowałem funkcję wm_concat i działa, ale nie mogę usunąć duplikatów z danych i użycia LISTAGG powoduje błąd

„Wynik połączenia ora-01489 jest zbyt długi w wyroczni”

błąd, ponieważ kolumny b zawierają wartości większe niż 4000 znaków.
Jakieś alternatywy oprócz tych 2 funkcji?

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz użyć LISTAGG funkcja, jeśli jesteś Oracle 11g+

SELECT a, LISTAGG(b, " ") WITHIN GROUP (ORDER BY b) as b, c
FROM   yourtable
GROUP BY a,c;