sql >> Database teknologi >  >> RDS >> Oracle

LISTAGG-forespørgsel ORA-00937:ikke en enkeltgruppegruppefunktion

Jeg tror, ​​for at din forespørgsel skal virke, skal du tilføje en group by , skal du ændre order by . Du bør også bruge korrekt eksplicit joinsyntaks:

SELECT r.rule_id as RULE_ID, 
       LISTAGG(a.ATTRIBUTE_ID, ', ') WITHIN GROUP (ORDER BY a.ATTRIBUTE_ID) as "ATTR_IDS"
FROM N_RULE r JOIN
     N_ATTRIBUTE a 
     ON r.RULE_ID = a.RULE_ID 
GROUP BY r.rule_id
ORDER BY r.rule_id;

Eller du vil muligvis inkludere en anden attribut i resultaterne:

SELECT r.rule_id, r.AUDIENCE, UPPER(r.NAME) 
       LISTAGG(a.ATTRIBUTE_ID, ', ') WITHIN GROUP (ORDER BY a.ATTRIBUTE_ID) as "ATTR_IDS"
FROM N_RULE r JOIN
     N_ATTRIBUTE a 
     ON r.RULE_ID = a.RULE_ID 
GROUP BY r.rule_id, r.AUDIENCE, UPPER(r.NAME)
ORDER BY r.AUDIENCE, UPPER(r.NAME);



  1. Databaseindeksering i en nøddeskal med B+træ og Hash i sammenligning

  2. Opsamling af tæller fra en SQL-forespørgsel

  3. Byg postgres docker-container med indledende skema

  4. Sådan tilføjer du et sidehoved og en sidefod til en formular i Microsoft Access