私は最近このインタビューでこの質問をしました:各テーブルに空白で区切られた複数の単語が含まれている列text
を含むSQLテーブルがあります。どのようにして、テーブル全体で発生頻度によって単語をソートするSQLクエリを記述しますか?データベース内のデータを分析するのは良い方法ですか?
SQLの初心者であるため、私は最も少なく言い表すのが難しいです。私はPythonスクリプトを通して簡単な解決策を考えることができます。私はこれを彼に提案しましたが、インタビュアーはSQLを純粋に使用したソリューションを求めていました。リアルタイムのストリーミングデータについてこのような迅速な分析を頻繁に行う必要があり、頻繁にデータダンプを取ってPythonでロードしたり、分析を行います。
実稼働環境で膨大なデータを扱う経験はあまりありません。そのため、インタビュアーが自分の推論で正当化されているかどうかを誰かに教えてください。どのようにこの問題を解決しますか?
私の経験では、あなたがFAXの保存イメージほど有用であると説明したようなテーブルです。どの文書がどの文書に含まれているかを知ることは、文書が検索エンジンの主題であるため、インタビュアーが示唆しているほど重要である場合は、2番目の表(WordList:Id、Word)と3番目の表 '( Document_X_Word:DocumentId、WordId、Count)と 'trigger 'を使用して、文書が更新されるたびにこれら2つのテーブルが更新されるようにします。そして、あなたは素朴な検索エンジンを持っています。 –
@BobKaufman:ああ大丈夫だよ。しかし、インタビュアーは、この種の分析のほうが多くのことを暗示していました。それでは、単語の頻度を知ることとは別に、9種類の分析を行う必要があります。毎月新しいタイプの分析が導入されるとしましょう。同じテーブルに対してさらに多くのテーブル(トリガ付き)を作成することをお勧めしますか? –