sql >> Databasteknik >  >> RDS >> Oracle

LISTAGG Fråga ORA-00937:inte en gruppfunktion i en grupp

Jag tror att för att din fråga ska fungera måste du lägga till en group by , ändra order by . Du bör också använda korrekt syntax för explicit join:

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 så kanske du vill inkludera ett annat attribut i resultaten:

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. PostgreSQL-fråga för att lista alla tabellnamn?

  2. Sök text i lagrad procedur i SQL Server

  3. Hur man returnerar frågeresultat som en kommaseparerad lista i PostgreSQL

  4. Finns det en PostgreSQL-motsvarighet till SQL Server Profiler?