用户表user有name和accountno以及其他字段。
要求查询:拥有三个以上accountno的用户数据,并且查询结果accountno不能重复。
比如这样查询会得到拥有三个以上accoutno的用户数据,但是会发生accountno重复的情况:
select * from t where name in (select name from t group by name having count(distinct accountno) > 3)
查询结果可能是:
张三 zs
张三 zhangs
张三 zhangsan
张三 zs
求思路?
注:数据库为oracle
逻辑思维错误,面壁24小时。
能否给些提示?
@yanwushu: name取一个,accountno你想取哪个?
@爱编程的大叔: 根据客户的要求是随便取.....
@yanwushu: 你和oracle说啊,告诉我是没用的。
逻辑错误~请继续面壁24小时。
已经修改了问题,描述的更加清晰一些,但是实在没有发现罗辑上的错误。能否给些提示?
@yanwushu: name和accountNo是一对多的,既然你查user的数据,那么肯定会出现多个的,你只能想办法取top 1之类的数据。
oracle就帮不上忙了
count group by having
应该就行了
再怎么根据用户要求取accountno 那也得把取accountno的逻辑写上去才不会重复吧