首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MySQL计数出现次数大于2

MySQL计数出现次数大于2
EN

Stack Overflow用户
提问于 2010-10-15 04:31:23
回答 4查看 148.4K关注 0票数 107

我有下面的表结构

代码语言:javascript
复制
+  id  +  word  +
+------+--------+

表中填入了给定文本的低位cas中的单词,因此文本

你好拜拜你好

会导致

代码语言:javascript
复制
+  id  +  word  +
+------+--------+
+   1  + hello  +
+------+--------+
+   2  + bye    +
+------+--------+
+   3  + hello  +
+------+--------+

我想执行一个SELECT查询,该查询将返回表中至少重复两次的单词数(如hello)

代码语言:javascript
复制
SELECT COUNT(id) FROM words WHERE (SELECT COUNT(words.word))>1

这当然是错误的,当表很大时会超载。有没有关于如何达到这个目的的想法?在上面给定的示例中,我希望是1

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-15 04:33:08

要获得出现多次的单词列表以及它们出现的频率,请使用GROUP BY和HAVING的组合:

代码语言:javascript
复制
SELECT word, COUNT(*) AS cnt
FROM words
GROUP BY word
HAVING cnt > 1

要查找上述结果集中的单词数,请将其用作子查询,并计算外部查询中的行数:

代码语言:javascript
复制
SELECT COUNT(*)
FROM
(
    SELECT NULL
    FROM words
    GROUP BY word
    HAVING COUNT(*) > 1
) T1
票数 269
EN

Stack Overflow用户

发布于 2010-10-15 04:33:39

代码语言:javascript
复制
SELECT count(word) as count 
FROM words 
GROUP BY word
HAVING count >= 2;
票数 19
EN

Stack Overflow用户

发布于 2010-10-15 04:33:54

SELECT word, COUNT(*) FROM words GROUP by word HAVING COUNT(*) > 1

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3937283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档