MySQL计数出现次数大于2

fab*_*joa 85 mysql

我有以下表格结构

+  id  +  word  +
+------+--------+
Run Code Online (Sandbox Code Playgroud)

该表填充了给定文本的较低cas中的单词,因此文本

你好你好

会导致

+  id  +  word  +
+------+--------+
+   1  + hello  +
+------+--------+
+   2  + bye    +
+------+--------+
+   3  + hello  +
+------+--------+
Run Code Online (Sandbox Code Playgroud)

我想创建一个SELECT查询,它将返回在表中重复至少两次的单词数(如hello)

SELECT COUNT(id) FROM words WHERE (SELECT COUNT(words.word))>1
Run Code Online (Sandbox Code Playgroud)

当桌子很大时,这当然是错误的并且超重.关于如何达到这个目的的任何想法?在上面给出的例子中,我希望1

Mar*_*ers 212

要获得不止一次出现的单词列表及其出现频率,请使用GROUP BY和HAVING的组合:

SELECT word, COUNT(*) AS cnt
FROM words
GROUP BY word
HAVING cnt > 1
Run Code Online (Sandbox Code Playgroud)

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

SELECT COUNT(*)
FROM
(
    SELECT NULL
    FROM words
    GROUP BY word
    HAVING COUNT(*) > 1
) T1
Run Code Online (Sandbox Code Playgroud)

  • 只是一个插件,您也可以在“having”中使用别名。与 SELECT 单词类似,COUNT(*) AS cnt FROM 单词 GROUP BY 单词 HAVING cnt > 1 (2认同)

bot*_*403 17

SELECT count(word) as count 
FROM words 
GROUP BY word
HAVING count >= 2;
Run Code Online (Sandbox Code Playgroud)


a1e*_*x07 6

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