Mysql
 sql >> база данни >  >> RDS >> Mysql

Няколко текстови стойности в една колона, необходима е заявката, за да намерите най-повтарящата се дума

Можете да го направите, като се присъедините към произведена числова серия, която се използва за избиране на n-тата дума. За съжаление, mysql няма вграден метод за генериране на поредица, така че е малко грозно, но ето го:

select
  substring_index(substring_index(title, ' ', num), ' ', -1) word,
  count(*) count
from job j
join (select 1 num union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9 union select 10 union select 11 union select 12) n
on length(title) >= length(replace(title, ' ', '')) + num - 1
group by 1
order by 2 desc

Вижте демонстрация на живо на SQLFiddle използване на вашите данни и създаване на очаквания резултат.

За съжаление, ограничението за твърдо кодиране на всяка стойност от числовата серия също ограничава броя на думите в колоната, които ще бъдат обработени (в този случай 12). Няма значение дали има твърде много числа в серията и винаги можете да добавите още, за да покриете по-голям очакван входен текст.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите автоматична актуализация на оператора sql WHERE от връзката localhost

  2. Атрибути за изтриване на множество вътрешни съединения

  3. MySQL, PHP:Изберете * от таблица, където идентификаторът не е в масива

  4. Сигурна ли е стандартната mysql връзка през порт 3306 в Sequel Pro?

  5. Mysql - Групиране по месеци с формат Y-m-d