Hallo,

ich habe nachfolgende (vereinfachte) Tabellen-Struktur
JSON_GRP1 JSON_GRP2 JSON_GRP3 JSON_GRP4
ID ID ID ID
Name Mail Data1 Data2
1: 1: n: n

und ich versuche diese Datenstruktur mittels SQL in ein JSON zu pressen.
Code:
SELECT 
CHAR(JSON_OBJECT(
 'Info' VALUE JSON_OBJECT(
    'Id' VALUE JSON_GRP1.ID
    , 'Name' VALUE JSON_GRP1.NAME
            )
            
, 'Group2' VALUE JSON_OBJECT(
    'Email' VALUE TRIM(JSON_GRP2.MAIL)
            )
            
, 'Data' VALUE JSON_OBJECT(
                'Data1' VALUE json_arrayagg ( json_object ('Id' value trim(JSON_GRP3.DATA1) null on null))
                , 'Data2' VALUE json_arrayagg ( json_object ('Id' value trim(JSON_GRP4.DATA2) null on null))
            )
        
), 1000)
FROM JSON_GRP1
  JOIN JSON_GRP2 ON JSON_GRP1.ID = JSON_GRP2.ID
  LEFT JOIN JSON_GRP3 ON JSON_GRP1.ID = JSON_GRP3.ID
  LEFT JOIN JSON_GRP4 ON JSON_GRP1.ID = JSON_GRP4.ID
             
GROUP BY  JSON_GRP1.ID, JSON_GRP1.NAME, JSON_GRP2.MAIL
im Ergebnis kommt folgendes JSON heraus:
Code:
{"Info":{"Id":1,"Name":"Tester"} ,"Group2":{"Email":"tester@test.de"} ,"Data":{ "Data1":[{"Id":"11"},{"Id":"11"},{"Id":"12"},{"Id":"12"}] ,"Data2":[{"Id":"21"},{"Id":"22"},{"Id":"21"},{"Id":"22"}]}}
Wie bekomme ich die (markierten) doppelten Elemente weg, damit ich folgendes Ergebnis erhalte:
Code:
{"Info":{"Id":1,"Name":"Tester"} ,"Group2":{"Email":"tester@test.de"} ,"Data":{ "Data1":[{"Id":"11"},{"Id":"12"}] ,"Data2":[{"Id":"21"},{"Id":"22"}]}}
Code:
CREATE TABLE JSON_GRP1("ID" NUMERIC (5 ) NOT NULL WITH DEFAULT, NAME VARCHAR(20 ) NOT NULL WITH DEFAULT);
CREATE TABLE JSON_GRP2("ID" NUMERIC (5 ) NOT NULL WITH DEFAULT, MAIL VARCHAR(60 ) NOT NULL WITH DEFAULT);
CREATE TABLE JSON_GRP3("ID" NUMERIC (5 ) NOT NULL WITH DEFAULT, DATA1 NUMERIC (5 ) NOT NULL WITH DEFAULT);
CREATE TABLE JSON_GRP4("ID" NUMERIC (5 ) NOT NULL WITH DEFAULT, DATA2 NUMERIC (5 ) NOT NULL WITH DEFAULT);

INSERT INTO JSON_GRP1 VALUES (1, 'Tester');
INSERT INTO JSON_GRP2 VALUES (1, 'tester@test.de');
INSERT INTO JSON_GRP3 VALUES (1, 11);
INSERT INTO JSON_GRP3 VALUES (1, 12);
INSERT INTO JSON_GRP4 VALUES (1, 21);
INSERT INTO JSON_GRP4 VALUES (1, 22);