具有多个表联接的Oracle LISTAGG
我正在使用Oracle18.c 我有一个连接三个表的查询。它很好用具有多个表联接的Oracle LISTAGG,oracle,listagg,Oracle,Listagg,我正在使用Oracle18.c 我有一个连接三个表的查询。它很好用 select ae."PRIM_KEY", ae."EVENT_DATE", ae."EVENT_NAME", ac."FIRST_NAME" || ' ' || ac."LAST_NAME" "PRESENTER" from "AFF_EVENT_V" ae , &qu
select ae."PRIM_KEY",
ae."EVENT_DATE",
ae."EVENT_NAME",
ac."FIRST_NAME" || ' ' || ac."LAST_NAME" "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"
Order by event_date desc
;
查询生成如下结果:
原始密钥
活动日期
事件名称
节目主持人
641
四月二十六日至二十一日
事件99
乔治华盛顿
622
四月十九日至二十一日
事件98
约翰·亚当斯
541
一月二十五日至二十一日
事件97
托马斯·杰斐逊
541
一月二十五日至二十一日
事件97
詹姆斯·麦迪逊
521
一月十八日至二十一日
事件96
詹姆斯·门罗
您必须添加一个
分组依据
子句
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
;
这就解决了问题。非常感谢吕克。我之前尝试过一个GROUPBY子句,但失败了。多亏了你,我意识到我必须在GROUPBY子句中包含所有前面的字段。谢谢