标签:
以下题目都在MySQL上测试可行,有疏漏或有更优化的解决方法的话欢迎大家提出,我会持续更新的:)
select * from student join course left join grade on student.s_id=grade.s_id and course.c_id=grade.c_id where grade.score is null;
日期(rstime) | 结果(result) |
2005-05-09 | 胜 |
2005-05-09 | 胜 |
2005-05-09 | 负 |
2005-05-09 | 负 |
2005-05-10 | 胜 |
2005-05-10 | 负 |
2005-05-10 | 负 |
日期 | 胜 | 负 |
2005-05-09 | 2 | 2 |
2005-05-10 | 1 | 2 |
select rstime,sum(case result when ‘胜‘ then 1 else 0 end)as 胜, sum(case result when ‘负‘ then 1 else 0 end)as 负 from result group by rstime;
name | course | score |
张三 | 语文 | 81 |
张三 | 数学 | 75 |
李四 | 语文 | 76 |
李四 | 数学 | 90 |
王五 | 语文 | 81 |
王五 | 数学 | 100 |
王五 | 英语 | 90 |
select distinct name from grade where name not in (select distinct name from grade where score<=80)
courseid | coursename | score |
1 | java | 70 |
2 | oracle | 90 |
3 | xml | 40 |
4 | jsp | 30 |
5 | servlet | 80 |
courseid | coursename | score | mark |
1 | java | 70 | pass |
2 | oracle | 90 | pass |
3 | xml | 40 | fail |
4 | jsp | 30 | fail |
5 | servlet | 80 | pass |
select *,case when score>=60 then ‘pass‘ else ‘fail‘ end as ‘mark‘ from temp;
自动编号 | 学号 | 姓名 | 课程编号 | 课程名称 | 分数 |
1 | 2005001 | 张三 | 0001 | 数学 | 69 |
2 | 2005002 | 李四 | 0001 | 数学 | 89 |
3 | 2005001 | 张三 | 0001 | 数学 | 69 |
create table temp as select 自动编号 from stu group by 学号,姓名,课程编号,课程名称,分数; delete from stu where 自动编号 not in (select 自动编号 from temp);
标签:
原文地址:http://www.cnblogs.com/saurik/p/4661789.html