1
我正在嘗試計算所有酒店的每個酒店的房間數量。我有3張桌子,其中一張帶有酒店ID和酒店信息,另一張帶有酒店所在的州(分享Hotel_ID),另一張帶有每個酒店ID的房間信息。但是我可以在這句話中得到「COUNT」和「GROUP BY」的工作。我使用的是Oracle的SQLDeveloper不能使用group by,ORA-00979:不是GROUP BY表達式
SELECT UPPER(A.HOTEL_NAME) "HOTEL NAME",
B.STATE AS STATE,
COUNT(C.ROOM_NUMBER)
FROM HOTEL A
INNER JOIN STATE B ON B.ID_STATE = A.ID_STATE
INNER JOIN ROOM C ON C.ID_HOTEL = A.ID_HOTEL
GROUP BY A.ID_HOTEL
ORDER BY A.HOTEL_NAME ASC;
當我嘗試沒有「COUNT」和「GROUP BY」子句就說明沒有問題,酒店名稱第一欄,並在第2的狀態下,酒店是它。
任何人都知道爲什麼我無法獲得按酒店ID分組的每個酒店(在第3列中)的房間數量?
SAMPLE DATA:
HOTEL TABLE ROOM TABLE STATE TABLE
========================== ======================= ======================
ID_HOTEL | HOTEL_NAME ID_HOTEL | ROOM_NUMBER ID_HOTEL | STATE
40 |STARDUST HOTEL 40 |101 40 |CALIFORNIA
50 |GREENTREE HOTEL 50 |101 50 |ARIZONA
我期待這樣的事情:
RESULTING VIEW:
HOTEL_NAME |STATE |ROOM_COUNT
STARDUST HOTEL |CALIFORNIA |1
GREENTREE HOTEL|ARIZONA |1
提前感謝!
感謝您的快速回答!我看到並現在明白了爲什麼你添加了兩個非聚合列,但是,我仍然得到相同的錯誤:(。給我一秒上傳一些示例數據! – Rycerzfrost
不用擔心!查看我的編輯小提琴,讓我知道它是否適用於你,或者我誤解了你的問題。 –
它現在工作,謝謝! – Rycerzfrost