sql面试题及答案总结
Posted z_java_20150812
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql面试题及答案总结相关的知识,希望对你有一定的参考价值。
这些都是笔试的时候遇到的,其实面试公司也是在网上找的题目,在网上都搜索得到的,我把总结遇到的总结一下。
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
以上是关于sql面试题及答案总结的主要内容,如果未能解决你的问题,请参考以下文章