Oracle 查询 - 如何检查用户是否是唯一分配给项目的用户

Oracle query - How to check if a user is the only one assigned to a project

我正在尝试确定用户是否被分配到具有特定角色 (ProjMemberTypeID) 的任何项目,如果是,如果 s/he 是唯一的。

“projMember”table 包含项目 ID、用户 ID 和项目成员类型 ID。我需要知道是否有任何项目 ID 其中该用户是唯一一个成员类型 ID 为 1 的用户。

是否也可以根据项目 ID 获取一些项目信息(如名称等),将请求的查询与“项目”table 连接起来?

我试过了,但它只告诉我有多少用户分配给了项目,如果我按用户 ID 过滤,我会得到有多少用户分配给了项目,但不知道如何检查 s/he是唯一的。

select count(userid), projectid 
from projmember 
where projmembertypeid = 1 -- and userid=73
group by projectid
order by projectid;

您可以使用 having 子句:

select projectid 
from projmember 
where projmembertypeid = 1
group by projectid
having min(userid) = 73 and max(userid) = min(userid)
order by projectid;

查询筛选相关成员类型,然后按项目聚合;剩下要做的就是确保找到给定的用户,而不是其他用户。