Ich habe eine Tabelle mit Tausenden von Schlüsselwörtern. Ich möchte die Top 25 der ausschließenden Keywords in dieser Tabelle isolieren und dann aus diesen Top-Keywords eine Verknüpfung erstellen, um die Sätze zu finden, die mit diesen Keywords in einer anderen Tabelle verknüpft sind. Das Endergebnis wird id_file
, sentence_id
, sentiment
, sentence
, token
sein. Beide Tabellen haben die Token.SQL Server Wählen Sie die höchsten Datensätze aus einer Tabelle in einer anderen Tabelle
der Tokentabelle (tbl_token
) hat die folgenden Spalten:
id_file, sentence_id, sentiment, token
Die Filter die Oberseite 25 von tbl_token
zu isolieren, sind wie folgt:
id_file = 3, sentiment = 'negative'
Die Satztabelle (tbl_sentence
) den folgende Spalten:
id_file, sentence_id, sentiment, **sentence**, token
Die sentence_id in beiden Tabellen haben eine Eins-zu-viele-Beziehung, so dass ein Join auf diesen die Sätze herauszieht. Die Token von der obersten Abfrage existieren in tbl_sentence
.
Meine aktuelle Lösung ist es, zuerst eine Top 25 von tbl_token
für die gleichen Filter wie oben, Zähler zählen, sortieren Sie es in absteigender Reihenfolge.
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
Dann verknüpfe ich, dass auf alle Tokens in einer Ansicht, die die sentence_id
hat. Dann kann ich sentence_id
von der Ansicht zu tbl_sentence
verknüpfen, um die Sätze basierend auf den oberen 25 ausschließenden Schlüsselwörtern zu isolieren.
Dies funktioniert, aber ich frage mich nur, ob dies in einer gespeicherten Prozedur durchgeführt werden kann.
zeigen nur das Ergebnis, das Sie want..thanks –