我有一个自联接表的问题,其中 group by 无法正常工作或我的代码有问题。
我正在尝试生成一个包含房屋销售数据的表格,并且我希望将结果按区域和房屋类型分组。
这是我到目前为止所拥有的,并且接近我所需要的。
SELECT A1.AREA AREA,
TRUNC((A1.SOLD_PRICE/A1.ASK_PRICE*100), 2) || '%' "ATT / ROW / TWNHOUSE",
TRUNC((A2.SOLD_PRICE/A2.ASK_PRICE*100), 2) || '%' "DETACHED",
TRUNC((A3.SOLD_PRICE/A3.ASK_PRICE*100), 2) || '%' "SEMI-DETACHED"
FROM SALESRECORDS A1, SALESRECORDS A2, SALESRECORDS A3
WHERE A1.AREA = A2.AREA AND A1.AREA = A3.AREA
GROUP BY A1.AREA, A1.HOUSE_TYPE;
这给了我错误ORA-00979: not a GROUP BY expression
。
当我遵循 SQL 规则,并将所有项目添加到 group by 子句时,我得到类似于 order by 语句的结果......
SELECT A1.AREA,
TRUNC((A1.SOLD_PRICE/A1.ASK_PRICE*100), 2) || '%' "ATT / ROW / TWNHOUSE",
TRUNC((A2.SOLD_PRICE/A2.ASK_PRICE*100), 2) || '%' "DETACHED",
TRUNC((A3.SOLD_PRICE/A3.ASK_PRICE*100), 2) || '%' "SEMI-DETACHED"
FROM SALESRECORDS A1, SALESRECORDS A2, SALESRECORDS A3
WHERE A1.AREA = A2.AREA AND A1.AREA = A3.AREA
GROUP BY A1.AREA, A1.SOLD_PRICE, A1.ASK_PRICE, A2.SOLD_PRICE, A2.ASK_PRICE,
A3.SOLD_PRICE, A3.ASK_PRICE;
有人可以告诉我我做错了什么......?