首页 > 数据分析】有无正在刷SQL面试50题的同学或者已经刷完的大佬
头像
牛客300273310号
编辑于 2020-08-01 08:32
+ 关注

数据分析】有无正在刷SQL面试50题的同学或者已经刷完的大佬

要是有小伙伴想一起刷题讨论的,请私信我QAQ,身边完全没有相同专业的小伙伴!!!!
要是有路过的大佬可以解答疑问就更好了QAQ
正在刷https://www.jianshu.com/p/3f27a6dced16 的第十五题
具体题目也就是 “查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩”
我和该博主的思路基本一致但是有一些问题!!
先贴段代码:

select a.s_id, student.s_name, b.avg_score from
(select s_id from score
where score< 60
group by s_id having count(*) >= 2) a -- 表a两门及以上不及格学生的学号
left join student on a.s_id = student.s_id
left join
(select s_id, avg(score) as avg_score 
from score
group by s_id) b 
on a.s_id=b.s_id;

这个是博主的答案,我的思路基本上和他一致。
但是在我尝试写两门及以上不及格学生的学号,也就是表a括号内的这一部分

select s_id from score
where score< 60
group by s_id having count(*) >= 2

单独运行这一段发生了错误,但是整段代码确实可以运行出来,请问这是什么原因呢?
以及我也尝试了加上student那段,也就是

select a.s_id, student.s_name from
(select s_id from score
where score< 60
group by s_id having count(*) >= 2) a -- 表a两门及以上不及格学生的学号
left join student on a.s_id = student.s_id

也是错误的,不知道原因是什么,希望有路过的大神指教!!!
以及有同在刷题想讨论题目的小伙伴快快私信我!
谢谢大家~

全部评论

(2) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

近期精华帖

热门推荐