2011-12-21 3 views
0

나는이 두 개의 열이있는 아주 간단한 항목 소유권 테이블이 :부분 집합 빈도 조건을 충족하는 테이블에서 항목 찾기?

사용자 ID 인덱스하지만 항목 ID하지가있다
UserID, ItemID 

.

집합 S가 10-40 인 특정 ItemID (내 쿼리에는 쉼표로 구분 된 정수 목록)입니다.

나는 그것이 중요한 경우 내가 MSSQL을 사용하고 S.

에있는 항목의 최소 X (별개의 ItemID들) 자신의 모든 UserID의를 찾고 싶어요. 이 작업을 효율적으로 수행 할 수 있습니까?

답변

3
select UserID 
from Ownership 
where ItemID in (1,2,3,4,5,...) --your list of ItemIDs 
group by UserID 
having count(distinct ItemID) >= 3 --the minimum # of distinct items required 
+0

내가 찾고있는 우아한 해결책입니다. 감사! –

+0

행복하게 도와주세요 - sometinmes SQL은 거의 영어와 비슷합니다. – RedFilter

+0

@RedFilter : 동의합니다. 이것이 바로 [처음에는 SEQUEL] (http://en.wikipedia.org/wiki/SQL#History) - Structured English QUEry 언어였습니다. –

관련 문제