Oracle SQL查询:如何组合这些结果?
我想将这些据称重复(实际上不是)的条目合并到属性id组(PTY_id)下的唯一条目中,结果如下: 下面是我的查询代码:Oracle SQL查询:如何组合这些结果?,sql,oracle,Sql,Oracle,我想将这些据称重复(实际上不是)的条目合并到属性id组(PTY_id)下的唯一条目中,结果如下: 下面是我的查询代码: SELECT distinct P.PTY_ID, (P.PTY_UNITNUM||' '||P.PTY_STREET||', ' ||P.PTY_SUBURB||', '||P.PTY_CITY||' '||P.PTY_POSTCODE) address, T.P_type_name, F.FEAT_name FROM property P,
SELECT distinct P.PTY_ID, (P.PTY_UNITNUM||' '||P.PTY_STREET||', '
||P.PTY_SUBURB||', '||P.PTY_CITY||' '||P.PTY_POSTCODE) address,
T.P_type_name, F.FEAT_name
FROM property P, PROPERTY_TYPE T, feature F, property_FEATURE K
WHERE P.P_TYPE_ID = T.P_TYPE_ID
AND K.feat_id = F.feat_id
AND K.pty_id = P.pty_id
ORDER BY p.pty_id;
更准确地说,我想显示一个独特的属性条目,其中显示了许多功能。我该怎么做
顺便说一下,我正在使用oracle 11g。所以我尝试了LISTAGG,但效果不太好
[更新]
我只是试着这样使用LISTAGG:
select distinct P.PTY_ID, (P.PTY_UNITNUM||' '||P.PTY_STREET||', '
||P.PTY_SUBURB||', '||P.PTY_CITY||' '||P.PTY_POSTCODE) address,
T.P_type_name, LISTAGG(F.FEAT_name, ',') WITHIN GROUP (ORDER BY
P.PTY_ID) AS FEATURES
from property P, PROPERTY_TYPE T, feature F, property_FEATURE K
where P.P_TYPE_ID = T.P_TYPE_ID
and K.feat_id = F.feat_id
and K.pty_id = P.pty_id
group by P.PTY_ID, P.PTY_UNITNUM, P.PTY_STREET, P.PTY_SUBURB, P.PTY_CITY,
P.PTY_POSTCODE, T.P_type_name
order by p.pty_id;
我得到这个错误,说:“从关键字未找到预期的地方”。错误发生在组(按P.PTY\u ID排序)中的行“
T.P\u type\u name,listag(F.FEAT\u name,,”)AS FEATURES
”尝试删除“FEATURES”之前的“AS”
LISTAGG(F.FEAT_name, ',') WITHIN GROUP (ORDER BY P.PTY_ID) AS FEATURES
LISTAGG(F.FEAT_name, ',') WITHIN GROUP (ORDER BY P.PTY_ID) FEATURES
“工作不太顺利”是什么意思?我想您应该使用
listag
。我不知道您遇到了什么问题,也不知道您尝试了什么,所以我不知道listag
是否是错误的方法,或者您是否做了错误的事情,或者您的问题是否需要进一步澄清。请检查此listag实现并发布您使用listag@JustinCave oops尝试过的内容。很抱歉,忘了提及这一点。。我在结果板上收到了“FROM关键字未找到预期位置”警告OK。因此,您尝试了一些未知的代码,但出现了语法错误。将您实际尝试过的代码与完整的错误堆栈一起发布会很有帮助。指定所需的实际结果也会很有帮助。@JustinCave刚刚编辑过。请看一看,你基本上只是复制和粘贴整个代码:有或没有,它的工作原理相同,如果你分享所有涉及表的ddl请。
SELECT DISTINCT P.PTY_ID,
(P.PTY_UNITNUM
||' '
||P.PTY_STREET
||', '
||P.PTY_SUBURB
||', '
||P.PTY_CITY
||' '
||P.PTY_POSTCODE) address,
T.P_type_name,
LISTAGG(F.FEAT_name, ',') WITHIN GROUP (ORDER BY P.PTY_ID) FEATURES
FROM property P,
PROPERTY_TYPE T,
feature F,
property_FEATURE K
WHERE P.P_TYPE_ID = T.P_TYPE_ID
AND K.feat_id = F.feat_id
AND K.pty_id = P.pty_id
GROUP BY P.PTY_ID,
P.PTY_UNITNUM,
P.PTY_STREET,
P.PTY_SUBURB,
P.PTY_CITY,
P.PTY_POSTCODE,
T.P_type_name
ORDER BY p.pty_id;