从MySQL字段中选择最常见的值

39

我有一个拥有一百万行的表格,如何从一个字段中选择最常见的值(即在该表格中出现次数最多的值)?


1
可能是重复的问题:mySQL查询以找到最常重复的值 - Ciro Santilli OurBigBook.com
3个回答

106

你需要按照感兴趣的列进行分组,并对于每个值,选择该值本身和它出现的行数。

然后就是排序(将最常见的值放在第一位)并将结果限制为仅一行。

用查询语句表示:

SELECT column, COUNT(*) AS magnitude 
FROM table 
GROUP BY column 
ORDER BY magnitude DESC
LIMIT 1

26

这个帖子 可以解决您的问题。

基本上,使用带有 GROUP BY 子句的 COUNT() 函数:

SELECT foo, COUNT(foo) AS fooCount 
FROM table
GROUP BY foo
ORDER BY fooCount DESC

而要仅获取第一个结果(最常见的),请添加

LIMIT 1

到你的查询的末尾。


这应该是 ORDER BY fooCount DESC - sMyles

7

如果您不需要返回最常见值的频率,可以使用以下方法:

SELECT foo
FROM table
GROUP BY foo
ORDER BY COUNT(foo) DESC
LIMIT 1 

这样做的附加好处是仅返回一列,因此可以在子查询中使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接