2011-06-20 4 views
0

私は選択したテーブル項目の中で最も一般的なタグはありますか?

質問表以下のような表があります。

Qid Tags 
--- --------- 
1 SQL 
1 DATABASE 
1 ALGORITHM 
2 ALGORITHM 
2 TAGS 
3 SQL 
3 SYNTAX 
3 DATABASE 

SELECT * FROM Question table WHERE TAGS='SQL' 

が表示されます。

Qid Tags 
--- ---- 
1 SQL 
2 SQL 
3 SQL 

を私が探しているの表示されるクエリ類似のタグに基づいて最も関連性の高い質問です。

質問すると、質問表 - Qid=1です。結果はQid 3となります.Qid 1とQid 3は2つの似たような用語を持っていますが、Qid 2はQid 1に1つの同様のタグとしてしかありません。Qid 2を検索すると、Qid 1を返します。 3人はタグを共有していません。 Qid 3を検索すると、Qid 1にはQid 3の持つ2つのタグがありますが、Qid 2にはQid 3のタグはありません。

ありがとうございました。

答えて

0

これらの行には何かがありますか?

SELECT Qid, COUNT(*) AS TagsInCommon FROM Questions 
WHERE Tags IN (
    SELECT DISTINCT Tags FROM Questions WHERE Qid=1 
) 
GROUP BY Qid 
ORDER BY TagsInCommon DESC 

0
declare @Qid int 
set @Qid = 1 

select top 1 Q2.Qid, COUNT(*) from Questions Q1 
inner join Questions Q2 on Q1.Tags = Q2.Tags 
where Q1.Qid = @Qid and Q2.Qid <> @Qid 
group by Q2.Qid 
order by COUNT(*) desc 
...私はフィールド名についてはよく分からないが、あなたのアイデアを得ます
関連する問題