2016-01-05 48 views
0

我有一个包含userID字段和itemID字段的表。我想选择所有具有两个或更多实例的itemID相同的所有用户(也就是说,例如,如果有3个记录,其中userID = 1且itemID = 7,那么我希望这些结果,但如果存在只有一个例子)。我需要获取所有用户(不仅仅是某个用户ID的结果)。 有人可以建议我怎么能做到这一点? 谢谢。在数据库中选择具有多个实例的用户

+0

欢迎来到StackOverflow。请首先检查StackOverflow在提问时的帮助。专注于[如何提出一个好问题](http://stackoverflow.com/help/how-to-ask)和[如何创建一个最小,完整和可验证的示例](http://stackoverflow.com/帮助/ mcve),而且其他[帮助主题](http://stackoverflow.com/help/asking)会很有用。 –

回答

0

你只需要使用group by和having。具有条款就像是除了它也适用于聚合。所以它就像select userID, itemID, count(*) from mytable group by userID, itemID having count(*) > 1

1

您可以使用聚合和having子句执行此操作。如果你只是希望用户:

select distinct userID 
from t 
group by userId, itemID 
having count(*) >= 2; 

这是一个有趣的查询,因为它是在哪里group byselect distinct一起使用非常罕见的情况之一。如果您需要userId/itemId对,那么您将使用select userId, itemId,而不需要distinct

相关问题