试图获取MySQL中每个唯一国家代码的计数

时间:2015-03-18 21:48:00

标签: mysql

我想从名为continent的表中获取每个Country的计数:

SELECT continent, count(*) totalcount from Country

它返回表格中的记录总数,只有一个大陆。

我的语法有问题吗?我在网上找到了其他类似的示例,但返回所有唯一值并附带计数。我不知道自己做错了什么。

3 个答案:

答案 0 :(得分:0)

您需要group by子句:

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

答案 1 :(得分:0)

指令计数(*)是一个聚合指令,因此它只返回一行。你应该尝试像

这样的东西
SELECT continent, count(*) totalcount FROM Country GROUP BY continent

为了拥有每个大陆的国家数量......

编辑:太晚了;)

答案 2 :(得分:0)

如果您有聚合函数,则所选的所有其他列应为聚合或在组中提及。 MySQL尽管它有一个宽松的方法来满足这个要求,你仍然应该总是尝试这样做。 添加

GROUP BY `continent` 
在这种情况下

会起作用

聚合函数列表

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

提及

  

如果在不包含GROUP BY的语句中使用组函数   子句,它相当于对所有行进行分组

关于mysql的group by

实现的更多内容

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