`

sql面试题

阅读更多

参考http://blog.csdn.net/wenboliang/article/details/4095859

1.

用一条SQL语句 查询出每门课都大于80分的学生姓名

name kecheng fenshu
张三语文 81
张三数学
75
李四语文
76
李四数学
90
王五语文
81
王五数学
100
王五英语
90

答案一:

select distinct c.name from course c 
where c.name in (
	select t.name from (
		select t2.name,min(fenshu) min from course t2 
		group by t2.name 
		having min>80
		) 
	t);


答案二:

select distinct name from table  where  name not in (select distinct name from table where fenshu<=80)


2.学生表 如下:

自动编号学号姓名 课程编号 课程名称 分数
1 2005001
张三 0001数学 69
2 2005002
李四 0001数学
89
3 2005001
张三 0001数学
69
删除除了自动编号不同,其他都相同的学生冗余信息

delete from student where id not in (select min(id) from student group by code,name,courseid,coursename,score);

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics