我想從一個名爲Country
表中的每個continent
的計數:試圖讓數爲每個唯一COUNTRYCODE在MySQL
SELECT continent, count(*) totalcount from Country
它在表中返回的記錄的總量也只有一個大陸就在那裏。
我的語法有問題嗎?我在網上發現了類似這樣的其他示例,但返回所有具有唯一值的計數以伴隨它們。我不知道我做錯了什麼。
我想從一個名爲Country
表中的每個continent
的計數:試圖讓數爲每個唯一COUNTRYCODE在MySQL
SELECT continent, count(*) totalcount from Country
它在表中返回的記錄的總量也只有一個大陸就在那裏。
我的語法有問題嗎?我在網上發現了類似這樣的其他示例,但返回所有具有唯一值的計數以伴隨它們。我不知道我做錯了什麼。
當你有一個聚合函數,所有的其他列選擇應該聚合或在組中提及。儘管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
你需要一個group by子句:
SELECT continent,count(*) totalcount from Country group by continent
謝謝大家,我剛剛在一段時間之前發現了我自己的信息後纔看到這些答案,但我很感謝您花時間協助 – 2015-03-19 01:09:22
指令COUNT(*)是一個集合指令,因此只返回一行。你應該嘗試像
SELECT continent, count(*) totalcount FROM Country GROUP BY continent
,以便在每個大洲的國家數...
編輯:太晚了;)
一些更多的閱讀,請閱讀幫助中心和ATLEAST格式您的文章正確。 – 2015-03-18 21:51:30