SQL> select * from usertable;
USERID USERNAME
----------- ----------------
1 user1
2 user2
3 user3
4 user4
5 user5
SQL> select * from usergrade_2;
USERNAME GRADE
---------------- ----------
user9 90
user8 80
user7 80
user2 90
user1 100
user1 80 执行 Select count(*) from usertable t1 where exists
(select 'x' from usergrade_2 t2 where t1.username=t2.username and rownum <=1); 给出你们的答案和解释(关键是你们怎么样理解) 谢谢!!!
USERID USERNAME
----------- ----------------
1 user1
2 user2
3 user3
4 user4
5 user5
SQL> select * from usergrade_2;
USERNAME GRADE
---------------- ----------
user9 90
user8 80
user7 80
user2 90
user1 100
user1 80 执行 Select count(*) from usertable t1 where exists
(select 'x' from usergrade_2 t2 where t1.username=t2.username and rownum <=1); 给出你们的答案和解释(关键是你们怎么样理解) 谢谢!!!
解决方案 »
- 如何学习ORACLE?
- 分布式数据库的一点疑惑
- Exception in thread "main" java.sql.SQLException: ORA-00923: FROM keyword not fo
- SQL语句中怎么格式化字段内容? 某个数字字段,我要把它格式化成3位,不足的部分补零。
- 为了显示诚意,我先开一贴接上(200分求一段SQL语句!不够再开新贴!)解决此地址问题
- 请问怎样查看SGA的命中率?
- mysql里怎么把字符串转化为日期
- 100分问一个简单问题!!!!!
- 在oracle中如何查找是哪个用户锁表?
- Oracle 问题,求大神解答
- 请教关于字段查询的问题
- oracle安装问题
WHERE T1.USERNAME IN (SELECT DISTINCT USERNAME FROM usergrade_2)
选出表USERTABLE的USERNAME 在表usergrade_2存在的数量
统计usertable中符合这种条件的记录的数量
from usertable t1
where exists (select 'x' from usergrade_2 t2 where t1.username=t2.username and rownum <=1);
---------------
查询有成绩的学生数量;问题1,
exists的执行方式已经决定了,一旦发现一条就会退出,而不会完成对usergrade_2的完整查询,所以这里的rownum<=1应该是多余的;问题2,
我看成绩表usergrade_2中使用了username存储学生信息,这是存在问题的,比如存在两个学生都叫user1的话就会导致本查询数据不准确。就算其中有一个没成绩,也会计算两个
支持这个.........rownum <=1可以去掉..多余的...........