如何在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
不错。我有一个关于限制和性能的相关问题。查询是否首先获得匹配的所有内容并限制显示该子集的一部分?换句话说,使用极限对性能有坏处? – 2010-03-15 07:35:07
apparrently,不,至少排序步骤是'部分',请参阅http://dev.mysql.com/doc/refman/5.1/en/limit-optimization.html – jonny 2010-03-15 08:44:34