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);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值