程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了查找sql​​列中最常用的单词(有多个单词)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决查找sql​​列中最常用的单词(有多个单词)?

开发过程中遇到查找sql​​列中最常用的单词(有多个单词)的问题如何解决?下面主要结合日常开发的经验,给出你关于查找sql​​列中最常用的单词(有多个单词)的解决方法建议,希望对你解决查找sql​​列中最常用的单词(有多个单词)有所启发或帮助;

例如,我在 sqlite3 中有这个列:

hello world
hello you two
hello world
hello hello

我想提取最流行的词及其出现次数。 然而,直到现在,似乎只能找到一个单元格的出现。像这样:

SELECT Titles,COUNT(Titles) 
FROM standart_results
GROUP BY Titles
ORDER BY count(*) DESC

它将返回 ("hello world",2)。 但我想要("hello",5)

我也不能使用 liKE,因为我不知道哪个词出现次数最多。

我是否需要将数据传输到变量中并在其上使用正则表达式,还是可以使用 sql 来完成?

解决方法

SQLite 没有很好的字符串处理能力,也没有返回表的方法。但是,它确实支持递归 CTE。您可以使用此结构将标题分解为单词:

with recursive cte as (
      select null as word,title || ' ' as rest,0 as lev
      from t
      union all
      select substr(rest,1,instr(rest,' ') - 1) as word,substr(rest,' ') + 1) rest,lev + 1
      from cte
      where lev < 5 and rest like '% %'
     )
select word,count(*)
from cte
where word is not null
group by word;

Here 是一个 dbfiddle。

要获得最上面的词,您可以使用:

select word,count(*)
from cte
where word is not null
group by word
order by count(*) desc
limit 1;
,

你可以试试这个。

SELECT titles,COUNT(titles) as Appearances
FROM standart_results
GROUP BY titles
ORDER BY Appearances DESC LIMIT 1

大佬总结

以上是大佬教程为你收集整理的查找sql​​列中最常用的单词(有多个单词)全部内容,希望文章能够帮你解决查找sql​​列中最常用的单词(有多个单词)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: