有人可以帮我解决这个问题吗?
我需要选择所有用户,每个人都有dt_user_login = null, 如果小组中有人有dt_user_login!= null,我就不需要任何人。
我的查询返回ORA-00937:不是单组组功能:
$(document).ready()
@Edit: 如果在这个组中我有5个用户,并且5个用户中有1个有dt_user_login = null,我的查询将不会返回任何人(0个用户)
如果在这个组中我有5个用户,并且所有5个用户都有dt_user_login = null,我的查询需要返回所有5个用户,得到它?
答案 0 :(得分:1)
您可以搜索DT_USER_LOGIN不为空的行没有的
SELECT U1.ID_USER
FROM USERS U1
WHERE NOT EXISTS (SELECT 1 FROM USERS U2
WHERE U2.DT_USER_LOGIN IS NOT NULL
AND U1.ID_USER_GROUP = U2.ID_USER_GROUP
)
AND U1.ID_USER_GROUP = '003008'
答案 1 :(得分:0)
这是使用分析函数计算非空dt_user_logins的替代解决方案:
select id_user
from (select id_user,
id_user_group,
count(case when dt_user_login is not null then 1 end) over (partition by id_user_group) not_null_dt_user_login_count
from users)
where id_user_group = '003008'
and not_null_dt_user_login_count = 0;
您应该测试所有解决方案,看看哪种解决方案最适合您的数据。有些人可能比其他人更有表现力。