【发布时间】:2015-06-25 07:59:45
【问题描述】:
我有一个 mysql 表,上面有很多字。
- 喂。
- 我是吗
- 海
- 乔
- 这个
- 那些
- 海
在上面的示例中,“hi”出现了 3 次,我想创建一个查询来查看该表并整理出出现次数最多的单词。
【问题讨论】:
我有一个 mysql 表,上面有很多字。
在上面的示例中,“hi”出现了 3 次,我想创建一个查询来查看该表并整理出出现次数最多的单词。
【问题讨论】:
您需要使用GROUP BY 子句和COUNT 函数。
SELECT word, COUNT(*) count FROM your_table GROUP BY word ORDER BY count DESC LIMIT 0,3;
可能的输出:
+------+-------+
| word | count |
+------+-------+
| hai | 2 |
| Hai. | 1 |
| This | 1 |
+------+-------+
如果您希望 MySQL 将 hai 和 Hai. 视为同一个单词,您应该在分组之前去除所有非字母字符。见MySQL: how to remove all non-alpha numeric characters from a string?。然后,根据this answer 的方法,它看起来像这样:
SELECT LOWER(alphanum(word)) word, COUNT(*) count FROM your_table
GROUP BY LOWER(alphanum(word)) ORDER BY count DESC LIMIT 0,3;
以及可能的结果:
+------+-------+
| word | count |
+------+-------+
| hai | 3 |
| this | 1 |
| joe | 1 |
+------+-------+
【讨论】:
您需要使用group by 方法编写一个sql 语句,将类似的东西组合在一起。这样的事情应该让你开始
select word, count(word)
from table
group by word
order by count(word) desc
【讨论】: