수천 개의 키워드가있는 테이블이 있습니다. 해당 테이블에서 상위 25 개의 제외 어 키워드를 분리 한 다음 상위 키워드에서 조인을 작성하여 다른 테이블의 해당 키워드에 링크 된 문장을 찾으십시오. 최종 결과는 id_file
, sentence_id
, sentiment
, sentence
, token
입니다. 두 테이블 모두에 토큰이 있습니다.SQL Server 다른 테이블의 한 테이블에서 상위 레코드를 선택하십시오.
토큰 테이블 (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에는 일대 다 관계가 있으므로 이들을 조인하면 문장을 꺼내게됩니다. 최상위 쿼리의 토큰은 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 개의 제외 키워드를 기준으로 문장을 분리 할 수 있습니다.
이 작동하지만 하나의 저장 프로 시저에서이 작업을 수행 할 수 있는지 궁금합니다.
그냥 당신이 일반적으로 내가 토큰의 수에 의해 주문 것 –