1.查询每门课都大于80分的学生姓名
name | kecheng | fenshu |
张三 | 语文 | 81 |
张三 | 数学 | 75 |
李四 | 语文 | 76 |
李四 | 数学 | 90 |
王五 | 语文 | 81 |
王五 | 数学 | 100 |
王五 | 英语 | 90 |
1. select name from table where name not in(select name from table where fenshu<=80);
2. select name from table group by name having min(fenshu)>80;
2. 删除除了id不同,其他都相同的学生冗余信息;
id | 学号 | 姓名 | 课程编号 | 课程名称 | 分数 |
1 | 2005001 | 张三 | 0001 | 数学 | 69 |
2 | 2005002 | 李四 | 0002 | 数学 | 90 |
3 | 2005001 | 张三 | 0001 | 数学 | 69 |
http://www.myexception.cn/java-web/1002598.html
DELETE from score where id not in (select bid from (select min(id) as bid from score GROUP by name,kecheng,fenshu)as b);
------最佳解决方案--------------------
DELETE from score where (name,kecheng,fenshu) in(select name,kecheng,fenshu from score GROUP by name,kecheng,fenshu having count(name,kecheng,fenshu) > 1) ;
------其他解决方案--------------------
DELETE from score where id not in(select min(id) id from score GROUP by name,kecheng,fenshu);
3. 说明:拷贝表(拷贝数据,源表名:a 目标表名:b)