gpt4 book ai didi

sql - 使用 sqlite 在列中查找最常见的单词?

转载 作者:行者123 更新时间:2023-12-04 05:03:31 25 4
gpt4 key购买 nike

我有这样的数据:

            movie_id    comment
1 tom cruise is great
1 great action movie
2 got teary eyed
2 great cast
1 tom cruise is hott

我想要一个函数,它根据我选择的 movie_id 返回评论中最常见的词。所以如果我查询 movie_id=1,我会得到:

            tom, 2
cruise, 2
is, 2
great, 2
hott, 1
action, 1
movie, 1

如果我查询 movie_id=2,我会得到:

            got, 1
teary, 1
eyed, 1
great, 1
cast, 1

我看到一些使用tsql的解决方案,但我以前从未使用过,也不理解代码。寻找在 sqlite3 中执行此操作的方法。

最佳答案

你可以用一个非常丑陋的查询来做到这一点。

select word, count(*) from (
select (case when instr(substr(m.comments, nums.n+1), ' ') then substr(m.comments, nums.n+1)
else substr(m.comments, nums.n+1, instr(substr(m.comments, nums.n+1), ' ') - 1)
end) as word
from (select ' '||comments as comments
from m
)m cross join
(select 1 as n union all select 2 union all select 3
) nums
where substr(m.comments, nums.n, 1) = ' ' and substr(m.comments, nums.n, 1) <> ' '
) w
group by word
order by count(*) desc

这是未经测试的。内部查询需要一个数字列表(此处仅限于 3 个;您可以查看如何添加更多)。然后检查单词是否从位置 n+1 开始。一个词在一个空格之后开始,所以我在评论的开头加了一个空格。

然后出于聚合目的,它会提取单词。

关于sql - 使用 sqlite 在列中查找最常见的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15820482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com