到目前为止我已经
了SELECT
word, count(*)
FROM
(SELECT
regexp_split_to_table(ColDescription, '\s') as word
FROM tblCollection
) a
GROUP BY word
ORDER BY count(*) desc
其中列出了所有单词以及它们在“描述”列中出现的次数。
我需要的是一种方法,可以显示一个单词连续多少次一次。
例如,如果我的数据是:
hello hello test
hello test test test
test hi
它会显示
word count # of rows it appears in
hello 3 2
test 5 3
hi 1 1
我非常喜欢数据库的初学者,感谢任何帮助!
样本表:
CREATE TABLE tblCollection ( ColDescription varchar(500) NOT NULL PRIMARY KEY);
示例数据是:
"hello hello test"
"hello test test test"
"test hi"
每个字符串都是它自己的行。
答案 0 :(得分:2)
主要障碍是您的子查询不会保留有关其找到每个单词实例的位置的任何信息。这很容易解决:
SELECT
regexp_split_to_table(ColDescription, '\s') as word,
ColDescription
FROM tblCollection
现在您已经将源字段与每个单词一起列出,这只是计算它们的问题:
SELECT
word, count(*), count(distinct ColDescription)
FROM
...