计数值出现在MySQL的特定列中

时间:2012-04-17 22:11:45

标签: mysql aggregate-functions

之前可能已经提到过,但我无法通过无数的搜索结果。

给定一个非规范化的MySQL表,最优化的查询是什么来计算使用列x的每个不同值的次数?

e.g。给定一个包含

的表
mike
mary
mike

返回结果如:

mike 2
mary 1

从MySQL文档中,似乎count是一个可以与GROUP BY一起使用的聚合函数,但是它没有按我想要的那样做(它返回{的总行数) {1}},而不是每行的出现次数。即这不起作用GROUP BY

4 个答案:

答案 0 :(得分:51)

select email, count(*) as c FROM orders GROUP BY email

答案 1 :(得分:15)

SELECT column_name, COUNT(column_name)
FROM table_name
GROUP BY column_name

答案 2 :(得分:1)

按功能查看分组。

按功能分组的功能是对给定字段的类似值进行分组。然后,您可以使用COUNT函数显示该值被分组的时间数。

MySQL Documentation

您也可以使用具有MySQL定义的大量其他功能的按功能分组(参见上面的链接)。

mysql> SELECT student_name, AVG(test_score)
    ->        FROM student
    ->        GROUP BY student_name;

答案 3 :(得分:0)

select name, count(*) from table group by name;

我认为应该这样做