sql面试题及答案总结
2017-08-25 19:52
344 查看
这些都是笔试的时候遇到的,其实面试公司也是在网上找的题目,在网上都搜索得到的,我把总结遇到的总结一下。
1.求每门成绩都大于80的学生名字。
name kecheng fenshu
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90
答案:select distinct name from tb_user where name not in (select name from tb_user where fenshu < 80);
2.删除除了自动编号不同,其他都相同的学生冗余信息
id 姓名 课程名称 分数
1 张三 数学 69
2 李四 数学 89
3 张三 数学 69
答案:
create table tb_temp as select min(id) id from tb_course group by kecheng,name,fenshu;
delete from tb_course where id not in (select id from tb_temp );
注意:我使用的mysql数据库,直接写
delete from tb_course where id not in (select min(id) id from tb_course group by kecheng,name,fenshu); 报错了!!!
3.已存在一张如下的表:
年 季度 销售额
2016 1 2000
2016 2 2500
2016 3 3000
2016 4 2000
2017 1 3000
2017 2 4000
2017 3 5000
2017 4 6000
写一个sql语句查询出如下所示的效果:
年 第一季度 第二季度 第三季度 第四季度
2016 2000 2500 3000 2000
2017 3000 4000 5000 6000
答案:
select year,
sum(case when quarter='1' then sales else 0 end)'第一季度',
sum(case when quarter='2' then sales else 0 end)'第二季度',
sum(case when quarter='3' then sales else 0 end)'第三季度',
sum(case when quarter='4' then sales else 0 end)'第四季度'
from tb_sale group by year;
4.
已存在一张如下的表:
季度 销售额
1 2000
2 2500
3 3000
4 2000
写一个sql语句使查询结果如下(销售额累加):
季度 销售额
1 2000
2 4500
3 7500
4 9500
1.求每门成绩都大于80的学生名字。
name kecheng fenshu
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90
答案:select distinct name from tb_user where name not in (select name from tb_user where fenshu < 80);
2.删除除了自动编号不同,其他都相同的学生冗余信息
id 姓名 课程名称 分数
1 张三 数学 69
2 李四 数学 89
3 张三 数学 69
答案:
create table tb_temp as select min(id) id from tb_course group by kecheng,name,fenshu;
delete from tb_course where id not in (select id from tb_temp );
注意:我使用的mysql数据库,直接写
delete from tb_course where id not in (select min(id) id from tb_course group by kecheng,name,fenshu); 报错了!!!
3.已存在一张如下的表:
年 季度 销售额
2016 1 2000
2016 2 2500
2016 3 3000
2016 4 2000
2017 1 3000
2017 2 4000
2017 3 5000
2017 4 6000
写一个sql语句查询出如下所示的效果:
年 第一季度 第二季度 第三季度 第四季度
2016 2000 2500 3000 2000
2017 3000 4000 5000 6000
答案:
select year,
sum(case when quarter='1' then sales else 0 end)'第一季度',
sum(case when quarter='2' then sales else 0 end)'第二季度',
sum(case when quarter='3' then sales else 0 end)'第三季度',
sum(case when quarter='4' then sales else 0 end)'第四季度'
from tb_sale group by year;
4.
已存在一张如下的表:
季度 销售额
1 2000
2 2500
3 3000
4 2000
写一个sql语句使查询结果如下(销售额累加):
季度 销售额
1 2000
2 4500
3 7500
4 9500
相关文章推荐
- C++面试题答案总结
- SQL经典面试题及答案
- .NET 面试题总结 (附有参考答案) 第2部分
- 慢慢总结PHP面试题,在不断的完善中,希望对以后应聘有好处,答案我都会测试过的
- 总结Java常见面试题和答案
- 2017年5月iOS面试题答案总结(转)
- SQL经典面试题及答案
- 互联网公司校招Java面试题总结及答案——京东
- .NET 面试题总结 (附有参考答案) 第1部分
- [引用]SQL经典面试题及答案
- SQL经典面试题及答案1
- .NET 面试题总结 (附有参考答案) 第3部分
- iOS面试题及答案大总结
- 互联网公司校招Java面试题总结及答案——网易
- 年总结2015前端面试题集锦及答案解析
- SQL面试题及答案
- SQL面试题及答案
- SQL经典面试题及答案
- .NET 面试题总结 (附有参考答案) 第1部分
- c面试题总结(含答案)