2017-10-05 86 views
0

我想只顯示前兩個建築物及其相應的平均會話價格。 這就是我現在所擁有的錯誤不是一個羣組功能

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

,但我得到的錯誤「SQL命令不能正確地結束」 3線,但隨後如果我結束第3行以分號,我得到這個新的錯誤「不一個單組功能「的第1行。林不知道我會出錯哪裏,我試圖尋找這個,但我沒有任何運氣來解決這個問題。

任何幫助表示讚賞!

+0

Where子句中有表達無以倫比。 –

+0

&'在哪裏**總是**在單個選擇查詢中位於'group by'之前。 SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY –

回答

0

您應該使用的Order by代替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

@詹姆斯 - 檢查更新的代碼 –

+0

工作完美,謝謝! – James

0

嘗試:

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。真的很困惑(你錯過了括號順便說一句) – James

+0

已經爲你添加組 –

相關問題