1

グループ化が適切に機能しないか、コードに問題があるという自己結合テーブルに問題があります。

住宅販売データを含むテーブルを作成しようとしていますが、その結果を地域別および住宅タイプ別にグループ化する必要があります。

これが私がこれまでに持っているもので、必要なものに近いものです。

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;

誰かが私が間違っていることを教えてもらえますか....?

4

1 に答える 1