棘手的 select 查询,需要帮助

tricky select query, need assistance

我有一个名为 psroleuser 的 table,它有 rolename, roleuser.

对于每个角色名,都有一组角色用户,例如角色名A可以有20个角色用户,角色名B可以有30个角色用户。

现在,我想 select 所有角色,即角色名称不超过 10 个。

怎么做。?我理解这在数据库中是非常基本的,但我也是..加上任何人都可以推荐好的 oracle,sql 阅读开始。

谢谢。

您没有共享那些 table 中的列,而且我并不直接熟悉 PeopleSoft,但听起来好像还有一个用户 table(或类似的),并且角色用户 table 将这些用户记录映射到角色名记录。如果这是真的,table 将包含名称类似于 RoleIDUserID 的列。使用这些列作为示例,您最终会得到如下结果:

SELECT RoleID
FROM RoleUser
GROUP BY RoleID
HAVING COUNT(UserID) <= 10
SELECT rolename
  FROM psroleuser
 GROUP BY rolename
 HAVING COUNT(1) <= 10;