2011-12-22 6 views
-1

내가 가장 많이 찾는 3 가지 결과를주는 SQL 쿼리를 찾고 있습니다.이 SQL 쿼리는 어떻게 작성합니까? Top 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 

을 포함, 난 단지 SQL 쿼리를 사용하여 1,3,4

는이 작업을 수행 할 수있는 ID를 반환 하시겠습니까?

나는 각 ATTRIB가 자신의 행에 가정하면 2008 년

감사

+2

테이블 구조는 무엇입니까? 각 속성이 자체 행에 있는지 여부는 분명하지 않습니다. – RedFilter

+0

select top 절을 사용할 수 있습니까? 즉 SELECT TOP 3 id from FROM the 테이블 어디서 무엇이든 –

+0

각 속성에는 자체 행이 있습니다. 그래서 한 줄은 1-A, 1-B, 1-C, 2-A, 3-A 등과 같습니다. – shinya

답변

1

SQL 서버를 사용하고 있습니다 :

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

그룹을 역순으로 사용해야했지만 Where 절은 작동합니다! 도움을 주셔서 대단히 감사합니다 !!! – shinya

+0

내 검색어가 수정되었습니다. – RedFilter

관련 문제