2015-06-05 86 views
-2

給出兩個表,城市和國家,其描述如下。打印所有大洲的名稱(鍵:Country.Continent)以及平均城市人口向下舍入爲最接近的整數。Oracle:錯誤ORA-00937:Oracle加入查詢中不是單個組的組函數

PS#1:City.CountryCode和Country.Code是同一個鍵。 PS#2:沒有城市的國家不應該包含在產出中。

City 

Field   Type  

ID    int(11) 
Name   char(35)  
CountryCode  char(3) 
District   char(20) 
Population  int(11) 

Country  

Field  Type  

Code   char(3)  
Name   char(52)  
Continent  char(50) 
Region   char(26) 
SurfaceArea  float(10,2) 
IndepYear  smallint(6) 
Population  int(11)  
LifeExpectancy float(3,1) 
GNP    float(10,2) 
GNPOld   float(10,2) 
LocalName  char(45) 
GovernmentForm char(45)  
HeadOfState  char(60) 
Capital   int(11)  
Code2   char(2)  

我試圖選擇AVG(C.Population)從國家賽揚加入由Cy.Continent(C.CountryCode = Cy.Code)基團市℃;

而且

選擇AVG(C.Population),Cy.Continent從國家賽揚加入對城市C(C.CountryCode = Cy.Code);

但它給我一個錯誤

ERROR位於第1行:ORA-00937:不是單組分組函數

+0

這是爲什麼標籤'SQL-server'當誤差明顯' oracle'? – Raj

+0

編輯..我是新來這個論壇.. –

+0

我想你需要添加GROUP BY cy.continent到你的代碼的末尾 – davegreen100

回答

0

我想你必須cy.continent添加到當您按Cy.continent進行分組時,請選擇第一次嘗試的語句。

嘗試類似的東西(地板是「舍下來到最接近的整數」 - 部分):

SELECT floor(AVG(City.population)),Country.continent FROM City JOIN Country ON City.CountryCode = Country.Code 
GROUP BY Country.continent; 
-1
select Country.Continent, Round(avg(City.Population),0) 
from City, Country 
where City.CountryCode = Country.Code 
group by Country.Continent ;