我有一张桌子,如下所示:


User ID  Service
1        2
1        3
2        1
2        3
3        5
3        3
4        3
5        2

我该如何构造一个查询,在该查询中我将计算服务3和至少一个其他服务的所有用户ID?

在上表中,我感兴趣的查询将返回3,因为用户ID 1、2和3的服务为3,并且至少还有一个其他服务。

谢谢!

最佳答案

在MS SQL中:

select count(*)
from UserService
where
    ServiceId = 3 and
    UserId in (select UserId from UserService where ServiceId != 3)

10-08 16:54