2015-03-18 19 views
-1

我想從一個名爲Country表中的每個continent的計數:試圖讓數爲每個唯一COUNTRYCODE在MySQL

SELECT continent, count(*) totalcount from Country 

它在表中返回的記錄的總量也只有一個大陸就在那裏。

我的語法有問題嗎?我在網上發現了類似這樣的其他示例,但返回所有具有唯一值的計數以伴隨它們。我不知道我做錯了什麼。

+0

一些更多的閱讀,請閱讀幫助中心和ATLEAST格式您的文章正確。 – 2015-03-18 21:51:30

回答

0

當你有一個聚合函數,所有的其他列選擇應該聚合或在組中提及。儘管MySQL對這個需求有一個放鬆的方法,但你仍應該總是試着去做。 添加

GROUP BY `continent` 

會在這種情況下工作

的聚合功能

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

如果您在包含語句中使用的一組功能,其中提到

名單沒有GROUP BY 克勞斯E,它相當於對所有行

分組對MySQL的執行group by

http://dev.mysql.com/doc/refman/5.1/en/group-by-handling.html

0

你需要一個group by子句:

SELECT continent,count(*) totalcount from Country group by continent 
+0

謝謝大家,我剛剛在一段時間之前發現了我自己的信息後纔看到這些答案,但我很感謝您花時間協助 – 2015-03-19 01:09:22

0

指令COUNT(*)是一個集合指令,因此只返回一行。你應該嘗試像

SELECT continent, count(*) totalcount FROM Country GROUP BY continent 

,以便在每個大洲的國家數...

編輯:太晚了;)

相關問題