我使用的是Oracle18.c,我有一个连接三个表的查询。它工作得很好。
查询会产生如下结果:
在许多情况下,给定事件有多个演示者。就像541的Prim_Key一样。我想将给定事件的演示者分组在一起,这样结果将如下所示:
我尝试使用LISTAGG函数,但似乎不能正确使用。这是我尝试过的方法。
这会产生一个错误: ORA-00937:不是一个单组分组函数。当我有多个表连接时,如何使用LISTAGG?
发布于 2021-02-28 10:58:13
您必须添加一个GROUP BY
子句
select ae."PRIM_KEY",
ae."EVENT_DATE",
ae."EVENT_NAME",
LISTAGG(ac."FIRST_NAME" || ' ' || ac."LAST_NAME", ',') WITHIN GROUP (ORDER BY ac."LAST_NAME") as "PRESENTER"
from "AFF_EVENT_V" ae
, "AFF_CONTACT" ac
, "AFF_EVENT_PRESENTER" aep
where aep."EVENT_FKEY" = ae."PRIM_KEY"
and aep."CONTACT_FKEY" = ac."PRIM_KEY"
Group BY
ae."PRIM_KEY",
ae."EVENT_DATE",
ae."EVENT_NAME"
Order by event_date desc
;
https://stackoverflow.com/questions/66405403
复制相似问题