计数值出现在 MySQL 中特定列中的次数
Posted
技术标签:
【中文标题】计数值出现在 MySQL 中特定列中的次数【英文标题】:Count number of times value appears in particular column in MySQL 【发布时间】:2012-04-29 07:22:33 【问题描述】:这可能以前被问过,但我无法通过无数的搜索结果。
给定一个非规范化的 mysql 表,计算列 x 的每个不同值被使用的次数的最优化查询是什么?
例如给定一个包含
的表mike
mary
mike
返回结果如下:
mike 2
mary 1
从 MySQL 文档来看,count
似乎是一个可以与GROUP BY
一起使用的聚合函数,但它没有做我想要的(它返回GROUP BY
中的总行数,而不是每行的出现次数。即这不起作用SELECT count(email) as c FROM orders GROUP BY email
【问题讨论】:
i.e. this does not work
--- 请详细解释一下。 “不起作用”根本没有帮助
谢谢。会不会我不知道当我问它时发生了什么。
【参考方案1】:
select email, count(*) as c FROM orders GROUP BY email
【讨论】:
显然我误读了结果。包括其中的“电子邮件”使我更清楚地看到了哪些数据。我在帖子中的查询确实没有任何问题。谢谢。 order 是个好主意,所以我的贡献:select email, count(*) as c FROM orders GROUP BY email ORDER BY c DESC;【参考方案2】:SELECT column_name, COUNT(column_name)
FROM table_name
GROUP BY column_name
【讨论】:
【参考方案3】:查看按功能分组。
group by 函数所做的几乎是对给定字段的相似值进行分组。然后,您可以使用 COUNT 函数显示该值被分组的次数。
MySQL Documentation
您还可以将 group by 函数与 MySQL 定义的大量其他函数一起使用(参见上面的链接)。
mysql> SELECT student_name, AVG(test_score)
-> FROM student
-> GROUP BY student_name;
【讨论】:
【参考方案4】:select name, count(*) from table group by name;
我认为应该这样做
【讨论】:
以上是关于计数值出现在 MySQL 中特定列中的次数的主要内容,如果未能解决你的问题,请参考以下文章