Oracle查询相同课程数

这篇博客介绍了如何使用Oracle SQL查询与学号为'1001'的同学课程完全相同的学生。通过多个查询示例,展示了从一门课程到所有课程的匹配情况,涉及子查询、内连接和分组统计。
摘要由CSDN通过智能技术生成

Oracle中的查询最能提升一个人的思维,一道题目可以有不同的方法进行解决,先来看下例子,如下:

题目:查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;

先看下表结构以及部分表数据,如下图:

上面这个题目很简单,因为只有一门相同课程就可以,先查询出同学’1001’的课程,再成绩表中in一下就可以了,所以我就想啊,一门简单,两门呢?全部呢?下面简单说明下我的思路。

--思路:

--1、首先将学号"1001"的同学的课程号查出;

--2、再与成绩表进行内连接,条件是课程id相同,筛选出学过学生"1001"所学的课程的学生;

--3、最后进行分组排序,将学过学生"1001"同学的课程数与学生"1001"的课程数进行比较,一门课程就不用比较了,内连接最少也是一门课程!

 

Oracle代码:

学过一门;

select distinct t.stuid,stuname from tblStudent t join tblScore s on s.StuId = t.StuId

where t.StuId <> '1001' and s.CourseId

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值