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. Postgresqlの切り捨て速度

    2. MongoクラスターをSSLで保護する

    3. OracleCloudPlatform上のOracleDatabase12cでのOracleJDeveloper12cの使用、パート3

    4. MySQLで月末を取得する方法