查询出选课不少于2门的学生的姓名、选课门数,要求按照选课门数的降序排序,如果选课门数相同,按照姓名升序排序

诗和远方1990 2019-04-26 10:46:13
有三张表,分别是学生表stu,课程表cou,选课关系表sc
学生表的字段有sno sname,birthday,课程表的字段有cno cname,选课关系表sc字段有sno cno grade
需求:查询出选课不少于2门的学生的姓名、选课门数,要求按照选课门数的降序排序,如果选课门数相同,按照姓名升序排序?
请问各位大神,sql应该如何写?
...全文
1488 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
miqi_oracle 2019-05-17
  • 打赏
  • 举报
回复
select a.sname,count(1) t
from stu a
inner join sc b on a.sno=b.sno
inner join cou c on b.cno=c.cno
where t>2
group by a.sname
order by t desc,a.sname asc;
阿甘吖 2019-05-09
  • 打赏
  • 举报
回复
select s.sname , c.sccount from stu s join (select sno ,count(sno) as sccount from sc grou by sno) c on s.sno = c.sno where c.sccount >=2 order by s.sname asc;
wildwolv 2019-04-28
  • 打赏
  • 举报
回复
select a.sname,count(b.cno) from stu a,cno b where a.sno = b.sno group by a.sname having count(b.cno) >= 2 order by count(b.cno) desc,sname asc

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧