2011-12-22 10 views
-1

私は、私にトップ3の最もマッチした結果を与えるSQLクエリを探しています。このSQLクエリはどのように記述しますか?トップ3最もマッチする結果

IDは、この例では属性A、B、C

id | attribs | results (# of matches) 
----+-----+-----+---- 
1 | A,B,C | 3 
2 | A  | 1 
3 | A,B  | 2 
4 | A,D  | 2 
5 | E  | 0 

が含まれている、私はIDに1,3,4

を返したい検索は、これが唯一のSQLクエリを使用して行うことができますか?

私は、各ATTRIBは独自の行であると仮定すると、2008年

ありがとう

+2

あなたのテーブル構造とは何ですか?それぞれの属性がそれ自身の行にあるかどうかは不明です。 – RedFilter

+0

select top句を使用できますか?すなわちSELECT TOP 3 idからどこにでも –

+0

各属性には自分の行があります。 1行は1-A、1-B、1-C、2-A、3-Aなどのようになります。 – shinya

答えて

1

SQL Serverを使用しています:

select top 3 id 
from MyTable 
where attrib in ('A', 'B', 'C') 
group by id 
order by count(distinct attrib) desc 
+0

ありがとうございました! – shinya

+0

私の質問を修正しました。 – RedFilter

関連する問題