Is there a way to get a similar result to analytic listagg with json_arrayagg (as JSON ARRAY)?
WITH data (nr, id, val) AS
(SELECT 1, 1, 'A' FROM dual UNION ALL
SELECT 2, 1, 'B' FROM dual UNION ALL
SELECT 3, 1, 'X' FROM dual UNION ALL
SELECT 4, 2, 'D' FROM dual UNION ALL
SELECT 5, 3, 'K' FROM dual UNION ALL
SELECT 6, 3, 'E' FROM dual)
SELECT id, val
--analytic listagg
, listagg(val,'-') WITHIN GROUP (ORDER BY nr asc) OVER (PARTITION BY id) lagg
, json_object(val) jobj
--analytic json_arrayagg ?
--, json_arrayagg(json_object(val))
FROM data;
id val lagg jobj
1 A A-B-X {"val":"A"}
1 B A-B-X {"val":"B"}
1 X A-B-X {"val":"X"}
2 D D {"val":"D"}
3 K K-E {"val":"K"}
3 E K-E {"val":"E"}