数据库 sql语句 判断对错
①求选修了课程的学生人数selectcount(SNO)fromSC②selectPNAME,max(SAL)fromPROF③selectDNO,avg(SAL)fro...
①求选修了课程的学生人数
select count(SNO)
from SC
②select PNAME,max(SAL)
from PROF
③select DNO,avg(SAL)
from PROF
groupby DNO
where AGE > 60 展开
select count(SNO)
from SC
②select PNAME,max(SAL)
from PROF
③select DNO,avg(SAL)
from PROF
groupby DNO
where AGE > 60 展开
1个回答
展开全部
1 你需要计数的是不重复的学生名字,选择的课程不能为空,如果为空的话,会重复,加distinct
2你写的是找到学生姓名和他的最高分 基本没问题
3 你写的是找到学生姓名和并且及格,如果是这样的话最好是用自链接来查询,select stuname from table a join table b on a.name=b.name where (select avg(sal)>60)
2你写的是找到学生姓名和他的最高分 基本没问题
3 你写的是找到学生姓名和并且及格,如果是这样的话最好是用自链接来查询,select stuname from table a join table b on a.name=b.name where (select avg(sal)>60)
追问
第一个你对了
第二个 有错误
正确的代码如下
select PNAME,SAL
from prof
where SAL = (select max(SAL) from prof);
第三个 自连接不懂
追答
因为聚合函数处理的是数据组,在本例中,MAX函数将整个TEACHER表看成一组,而TNAME、DNAME和TSEX的数据都没有进行任何分组,因此SELECT语句没有逻辑意义
解决这个问题的方法,就是在WHERE子句中使用子查询来返回最大值,然后再基于这个返回的最大值,查询相关信息。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询