我有一个包含userID字段和itemID字段的表。我想选择那些有两个或更多个itemID相同的实例的用户(例如,如果有3条记录,其中userID = 1,itemID = 7那么我想要那些结果,但如果有& #39;只是一个例子)。我需要获得所有用户(不仅仅是某个用户ID的结果)。 谁能建议我怎么做? 感谢。
答案 0 :(得分:1)
您可以使用聚合和having
子句执行此操作。如果您只是想要用户:
select distinct userID
from t
group by userId, itemID
having count(*) >= 2;
这是一个有趣的查询,因为它是group by
和select distinct
一起使用的非常罕见的情况之一。如果您想要userId
/ itemId
对,那么您将使用select userId, itemId
,而不使用distinct
。
答案 1 :(得分:0)
你只需要使用group by和having。 having子句就像在哪里,除了它也适用于聚合。所以它就像select userID, itemID, count(*) from mytable group by userID, itemID having count(*) > 1
。