计算单词在oracle中的列中出现的次数

时间:2014-05-23 03:40:29

标签: sql oracle count substring

我有一个包含20000条记录的数据库。我希望我的代码可以计算哪些记录共享其标题中的第一个单词'值。 到目前为止,这是我的代码,并且它返回了1000条记录(我不认为有1000个单词可以作为记录的第一个单词共享,每个记录大约为20个)

我需要做些什么来计算第一个单词作为第一个单词共享的次数? (如 记录1:标题:'鲍勃乔去等等。 记录2:标题:'鲍勃反击' 记录3:标题:'乔和鲍勃回家'

它会以“Bob'有2个计数,而不是3个,因为Joe是记录3中的第一个单词

SELECT SUBSTR(TITLE, 1, INSTR(TITLE, ' ') -1) WORD
     , COUNT(SUBSTR(TITLE, 1, INSTR(TITLE, ' ') -1)) NUM 
  FROM FILM 
 GROUP BY SUBSTR(TITLE, 1, INSTR(TITLE, ' ') -1);

1 个答案:

答案 0 :(得分:2)

REGEXP_SUBSTR有点清洁。如果我理解你的要求,就应该这样做:

SELECT REGEXP_SUBSTR(TITLE, '\w+') first_word, COUNT(*) 
  FROM film
 GROUP BY REGEXP_SUBSTR(TITLE, '\w+');