当前位置:首页 » 编程语言 » 用sql查出重复的学号
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

用sql查出重复的学号

发布时间: 2022-06-27 14:48:47

sql语句 查询至少选修了与某个同学选修的课程相同的学生学号

SELECT 学号
FROM 学习
WHERE 课程号 IN (SELECT t5.课程号
FROM 学院 t1, 学生 t2, 教师 t3, 课程 t4, 学习 t5, 开课 t6
WHERE t1.学院代码 = t2.学院代码
AND t2.学院代码 = t3.学院代码
AND t2.学号 = t5.学号
AND t3.教师号 = t6.教师号
AND t4.课程号 = t5.课程号
AND t4.课程号 = t6.课程号
GROUP BY t5.课程号
HAVING COUNT(T5.学号) >= 2)

㈡ “查询某门课程考试成绩相同的学号和课程名”的SQL语句

select a.学号,a.课程名,b.学号
from XX表 a
where a.课程名=b.课程名 and a.成绩=b.成绩

㈢ 在sql中,怎样的语句得到选课学生的学号。(注意去掉重复的学号)

select distinct 学号 from 选课表

select 学号 from 选课表 group by 学号

㈣ SQL:在学生选课表中查询与某一学生选相同课程的学生的学号

SELECT studid FROM transcript where crscode = 'xx'
xx代表那个相同课程的课程号。。。。

㈤ 如何查询出sql数据库中表中重复的数据。又如何选其中一个进行更新操作

通过 group by 查询sql数据库中表中重复的数据
如:查询姓名相同的学生姓名
select s_name from s_table group by s_name having count(1)>1
至于如何选其中一个进行更新操作,你可以通过
select sno,a.s_name //获得学号和姓名
from s_table inner join ( select s_name from s_table group by s_name having count(1)>1)a on a.s_name=s_table.s_name 查询到相同姓名(假如名字是张三)的不同学号(假如学号分别为0001,0002),然后利用学号进行更新操作
如:update s_table
set s_name='李四',
where sno='0001'

㈥ SQL查询中,查3个表中的数据,其中学号是相同的,查出结果学号项重复了,怎么去掉,有简单的方法吗

你select输出用的*吧,这个没什么简单的方法,只能一个一个把字段写上
如果嫌麻烦,可以用系统图表把字段列出来与逗号拼接,然后粘贴出来放在select后面

㈦ 用sql语句查询与学号为123的学生在A课程中得分相同的学生的学号及姓名,请指点。

select 学号,姓名 from 表 where 成绩=(select 成绩 from 表 where 学号='123' and 课程='A')and 课程='A'

㈧ 怎样查询一个表:学号+科目组成的值重复的数据

貌似你想要用人工筛选的方法去掉重复的成绩记录,比较复杂的说。
要是随留一条的话,select distinct就行,留第一条。
要是人工选择的话,就成了学生、科目、成绩三维数据寻找二维重复问题了。需要两重循环,最好在外部程序中实现。支持循环语句的dbms也能写出sql查询,比较麻烦。
人比较笨,想不出别的好办法了……

㈨ sql查询两个字段相同的记录

EXCEL中用VBA连接ACCESS数据库
有如下一张表,要分别查找出所有同名的人、所有同名并且学号也一样的人以及所有同名但不同学号的人。

查询所有同名人员
select * from [18年考试成绩] where [姓名] in (SELECT [姓名] FROM [18年考试成绩] group by [姓名] having count(姓名)>1)
查询结果:

查找所有姓名和学号两个字段都重复的人
select * from [18年考试成绩] where [姓名] in (SELECT [姓名] FROM [18年考试成绩] group by [姓名] having count(姓名)>1) and [学号] in (SELECT [学号] FROM [18年考试成绩] group by [学号] having count(学号)>1)
查询结果:

查找所有姓名重复但学号不重复的人
select * from [18年考试成绩] where [姓名] in (SELECT [姓名] FROM [18年考试成绩] group by [姓名] having count(姓名)>1) and [学号] not in (SELECT [学号] FROM [18年考试成绩] group by [学号] having count(学号)>1)
注意:要把SELECT查询子句配合in或not in 操作符使用,SELECT查询子句只能有一列内容。
查询结果:

其中子句 “SELECT [姓名] FROM [18年考试成绩] group by [姓名] having count(姓名)>1”是显示所有重复的姓名,如果如下:

如果要知道重复出现次数,则可以这样写:
SELECT [姓名],count(姓名) as 出现次数 FROM [18年考试成绩] group by [姓名] having count(姓名)>1
结果如下:

查找唯一记录
group by [姓名],意思是按姓名分组,having count(姓名)>1 是分组条件,意思是姓名次数出现2次以上的重复内容以姓名进行分组,前面的count(姓名)是对分组以后的姓名统计出现次数。在后面要使用函数条件时应该使用having,而不是使用where
查找唯一值,比如本例的班级中,只有一个“四班”,要把这个四班的所有字段显示出来可以这样:
select * from [18年考试成绩] where 班级 not in (SELECT 班级 FROM [18年考试成绩] group by 班级 having count(班级)>1)
结果:

如果使用“SELECT DISTINCT 班级 FROM [18年考试成绩]”语句查询唯一值,结果将会如下:

DISTINCT 会显示不重复的值,如果有重复的,只显示第一个,所以如果需要显示仅出现一次的值并不适合使用SELECT DISTINCT语句
分组查询语句:
比如要班级为单位,查询每个班的总人数,科目总分,科目平均分等
SELECT [班级],count(姓名) as 班级人数,sum(语文) as 语文总成绩,sum(数学) as 数学总成绩,ROUND(avg(语文),1) as 语文平均分,ROUND(avg(数学),1) as 数学平均分 FROM [18年考试成绩] group by [班级]
查询结果如下:

注意:如果使用函数的字段,不使用AS指定别名,将会自动生成一个字段名,第一列名字Expr1000,第二列名为Expr1001,第三列名为Expr1002,以此类推
如:
SELECT [班级],count(姓名),sum(语文),sum(数学),ROUND(avg(语文),1) ,ROUND(avg(数学),1) FROM [18年考试成绩] group by [班级]
查询结果如下:

如果不指定别名,你将无法清楚在查询结果中知道每一列是干什么的。
如果需要再细分,查询每个班女生总人数和科目平均分,只需要再加一个where条件就可以了
SELECT [班级],count(姓名) as 班级女性人数,ROUND(avg(语文),1) as 语文平均分,ROUND(avg(数学),1) as 数学平均分 FROM [18年考试成绩] where 性别='女' group by [班级]