选择子字符串以空格分隔的列中计数最高的子字符串

选择子字符串以空格分隔的列中计数最高的子字符串

问题描述:

如何选择字中空格分隔的列中最常用的字?我使用SQLite作为数据库。选择子字符串以空格分隔的列中计数最高的子字符串

例如,

Column1 Column2 
1  Apple Orange Banana 
2  Strawberry Apple Pineapple 
3  Grape Mango 

所需的输出:苹果

字计数。假设你的表被称为yourTable。使用公用表表达式(with clause)将Column2拆分为单独的单词。我借了一些知识,从user1461607以及与此想出了:。

WITH RECURSIVE split(word, str, hasspace) AS (
SELECT '', Column2, 1 from yourTable 
UNION ALL SELECT 
substr(str, 0, 
    case when instr(str, ' ') 
    then instr(str, ' ') 
    else length(str)+1 end), 
ltrim(substr(str, instr(str, ' ')), ' '), 
instr(str, ' ') 
FROM split 
WHERE hasspace 
) 
SELECT trim(word) FROM split WHERE word!='' GROUP BY trim(word) ORDER BY count(*) DESC LIMIT 1 
+0

这完美的作品,忽视了“无法分析查询文本”查询生成器警告感谢,但,Visual Studio的查询构建器不断重新安排查询时我再次打开它的查询生成器,但我始终可以将原始查询粘贴到查询生成器中,如果有人知道如何防止这种情况发生,那么我会很感激你如何发布。 – Dog