我正嘗試使用逗號分隔值列表創建聯接。例如:LISTAGG查詢「ORA-00937:不是單組功能」
rule_id | attribute_id
----------------------
1 | a
1 | b
2 | c
2 | d
應該是:
rule_id | attribute_id
----------------------
1 | a,b
2 | c,d
我試圖這樣做使用LISTAGG
。但是,通過下面的代碼,我得到ORA-00937: not a single-group group function
。我注意到sql-server的一個FOR PATH
語法,但它看起來不適合我們的配置。這裏是我的查詢:
SELECT r.rule_id as RULE_ID,
LISTAGG(a.ATTRIBUTE_ID, ', ') WITHIN GROUP (ORDER BY a.ATTRIBUTE_ID) "ATTR_IDS"
FROM N_RULE r, N_ATTRIBUTE a
WHERE r.RULE_ID = a.RULE_ID
ORDER BY r.AUDIENCE, UPPER(r.NAME);
添加'GROUP BY R.RULE_ID'。爲什麼你要按照沒有出現在你選擇的列中的內容進行排序? –