我有以下表格结构
+ 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)
bot*_*403 17
SELECT count(word) as count
FROM words
GROUP BY word
HAVING count >= 2;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
108952 次 |
| 最近记录: |