sql >> データベース >  >> RDS >> Mysql

1つの列に複数のテキスト値があり、最も繰り返し可能な単語を見つけるためのクエリが必要です

    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. SQLステートメントがJavaで実行されたかどうかを知る方法は?

    2. Oracleで科学的記数法で数値をフォーマットする方法

    3. Postgresqlアダプター(pg):サーバーに接続できませんでした

    4. カスタムテキスト検索構成のシソーラス辞書を正しく作成する方法