计数值出现在 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 中特定列中的次数的主要内容,如果未能解决你的问题,请参考以下文章

PowerPivot Group By 以查找值的计数

如何计算某些值在 SQL 表中出现的次数并在列中返回该数字?

GDELT:计算特定主题的出现次数

计算 pyspark 数据框中的出现次数

计数数组中值的出现次数

如何获取列中每个不同值的计数? [复制]