数据库 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
展开
 我来答
爱未动心已死
推荐于2016-02-27 · 超过60用户采纳过TA的回答
知道答主
回答量:106
采纳率:100%
帮助的人:87.4万
展开全部
1 你需要计数的是不重复的学生名字,选择的课程不能为空,如果为空的话,会重复,加distinct
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子句中使用子查询来返回最大值,然后再基于这个返回的最大值,查询相关信息。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式