2011-12-21 50 views
0

我有這兩列一個非常簡單的項目所有權表:查找滿足子集頻率條件的表中的項目?

UserID, ItemID 

上有用戶ID的索引,而不是項目ID。

我有一個10-40特定的集合S ItemID(在我的查詢中,他們只是逗號分隔的整數列表)。

我想找到所有UserID s表示自己在S.

至少物品的X(不同ItemID S)我使用MSSQL如果它很重要。這可以有效地完成嗎?

回答

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

這是我尋找的優雅解決方案。謝謝! – 2011-12-21 18:14:23

+0

樂於幫助 - sometinmes SQL幾乎像英文一樣讀取。 – RedFilter 2011-12-21 18:20:22

+0

@紅色過濾器:同意。這就是爲什麼[最初稱爲SEQUEL](http://en.wikipedia.org/wiki/SQL#History) - 結構化英語QUEry語言。 – 2011-12-21 21:45:08