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

时间:2011-10-07 22:57:00

标签: mysql

我有一个包含一百万行的表,如何从一个字段中选择最常见的(表中最多出现的值)值?

3 个答案:

答案 0 :(得分:78)

您需要按兴趣列进行分组,并为每个值选择值本身及其出现的行数。

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

在查询表格中:

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

答案 1 :(得分:20)

This thread应该对你的问题有所了解。

基本上,将COUNT()GROUP BY子句一起使用:

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

要获得第一个结果(最常见),请添加

LIMIT 1

在查询结束时。

答案 2 :(得分:6)

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

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

这样做的另一个好处是只返回一列,因此可以在子查询中工作。