Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

analytic json_arrayagg like listagg

user8048037Dec 1 2022

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"}
This post has been answered by User_3ABCE on Dec 1 2022
Jump to Answer
Comments
Post Details
Added on Dec 1 2022
9 comments
1,325 views