如何在MYSQL中执行此查询?

问题描述:

假设我有文字列:如何在MYSQL中执行此查询?

orange 
grape 
orange 
orange 
apple 
orange 
grape 
banana 

如何执行一个查询,以获得前10名的话,以及他们的计数?

SELECT word, COUNT(*) word_cnt 
FROM your_table 
GROUP BY word 
ORDER BY COUNT(*) DESC 
LIMIT 10 

GROUP BY组由word值时,ORDER BY COUNT(*) DESC让你的行用最高计数第一和LIMIT 10只返回前10行。

SELECT word, COUNT(*) AS n 
FROM  `table` 
GROUP BY word 
ORDER BY COUNT(*) DESC 
LIMIT 10 
+0

不错。我有一个关于限制和性能的相关问题。查询是否首先获得匹配的所有内容并限制显示该子集的一部分?换句话说,使用极限对性能有坏处? – 2010-03-15 07:35:07

+0

apparrently,不,至少排序步骤是'部分',请参阅http://dev.mysql.com/doc/refman/5.1/en/limit-optimization.html – jonny 2010-03-15 08:44:34