私は何千ものキーワードを持つテーブルを持っています。私はそのテーブルの中で上位25の除外キーワードを分離してから、それらのトップキーワードから別のテーブルのそれらのキーワードにリンクされたセンテンスを見つけるために結合を作成したいと思います。最終結果はid_file
,sentence_id
,sentiment
,sentence
,token
となります。どちらの表にもトークンがあります。SQL Server別のテーブルの1つのテーブルのトップレコードを選択します。
トークンテーブル(tbl_token
)は次のカラムがあります。次のように
id_file, sentence_id, sentiment, token
tbl_token
からトップ25を分離するフィルタである:
id_file = 3, sentiment = 'negative'
文テーブル(tbl_sentence
)を有しています次の列:
id_file, sentence_id, sentiment, **sentence**, token
両方のテーブルのsentence_idには1対多の関係があるため、それらを結合すると文が引き出されます。上位クエリのトークンはtbl_sentence
に存在します。
私の現在の解決策は、上記のフィルタと同じフィルタの場合は、最初にtbl_token
からトップ25を実行し、カウントトークンを降順で並べ替えることです。
SELECT TOP (25)
COUNT(token) AS Count, token
FROM
tbl_token
GROUP BY
token, sentiment, id_file
HAVING
(sentiment = N'negative') AND (id_file = 3)
ORDER BY
COUNT(token) DESC
次に、それをsentence_id
のビューのすべてのトークンにリンクします。その後、ビューのsentence_id
をtbl_sentence
にリンクして、上位25個の除外キーワードに基づいて文を分離することができます。
これは機能しますが、これが1つのストアドプロシージャで実行できるかどうかは不思議です。
はちょうどあなたが通常、私はトークンの数で注文するだろう –