2017-10-05 7 views
0

セッションの平均価格を表示し、上位2つの建物だけを表示したいとします。 これは私が今持っているもの単一のグループグループ機能ではないエラー

SELECT BUILDINGLANE,SUM(SESSIONPRICE/COUNT(BUILDINGNO)) 
FROM BUILDING NATURAL JOIN CONFERENCESESSION 
GROUP BY BUILDINGLANE 
WHERE SUM(SESSIONPRICE/COUNT(BUILDINGNO)); 

ですが、私は、3行目のエラー「適切に終了していないSQLコマンド」を取得するが、私はセミコロンで3行目を終了した場合、その後、私はいない「のこの新しいエラーが出ます1行目のための1つのグループのグループ機能 "私は間違っているかどうかわからない、iveはこれについて検索しようとしましたが、私はhaventがこれを解決することに幸運を持っていました。

ご協力いただきましてありがとうございます。

+0

。 –

+0

& 'where' **常に**単一の選択クエリで' group by'に先行します。 SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY –

答えて

0

代わりWhere

SELECT * 
FROM (SELECT BUILDINGLANE, 
       Sum(intrPrice) AS avgPrice 
     FROM (SELECT BUILDINGLANE, 
         SESSIONPRICE/Count(BUILDINGNO) AS intrPrice 
       FROM BUILDING 
         NATURAL JOIN CONFERENCESESSION 
       GROUP BY BUILDINGLANE, 
          SESSIONPRICE) a 
     GROUP BY BUILDINGLANE 
     ORDER BY avgPrice DESC) b 
WHERE ROWNUM <= 2 
+0

ああ、私は同じエラーを返します:/ ORA-00937:単一グループのグループ機能ではない 00937. 00000 - 単一グループのグループ関数ではない " *原因: *アクション: 行のエラー:77列:8 – James

+0

@James - 更新されたコードを確認してください –

+0

完全に作業しました。 – James

0

試しのOrder byを使用する必要があります句は比較せずに表現してい

select * from(
    SELECT BUILDINGLANE,SUM(SESSIONPRICE)/COUNT(BUILDINGNO) 
    FROM BUILDING NATURAL JOIN CONFERENCESESSION 
    GROUP BY BUILDINGLANE, BUILDINGNO 
    Order by (SUM(SESSIONPRICE)/COUNT(BUILDINGNO)) desc 
) 
where rownum <= 2 
+0

ええ、このエラーが発生しました。ORA-00937:単一グループ・グループではない 00937. 00000 - "単一グループ・グループではありません" *原因: *処置: 行のエラー:76列:12。本当に混乱していました(あなたはカッコ内にbtwがありませんでした) – James

+0

あなたのためにグループを追加しました –

関連する問題