Oracle
 sql >> база данни >  >> RDS >> Oracle

LISTAGG Заявка ORA-00937:не е функция за група от една група

Мисля, че за да работи вашата заявка, трябва да добавите group by , променете order by . Трябва също да използвате правилен изричен синтаксис за присъединяване:

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;

Или евентуално искате да включите друг атрибут в резултатите:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UNPIVOT върху неопределен брой колони

  2. Как да създадете пакет в Oracle SQL Developer?

  3. Как да генерирате пакет API за таблица в Oracle SQL Developer?

  4. Процедурата на Oracle не връща резултати при изпълнение от задача на скрипт на SSIS

  5. Опресняване / Актуализиране на екран на формуляр в Oracle D2k Forms 6i