今天参加完面试,遇到了一些sql题,现把这些题目一一列出,希望有人看到,如果你在面试过程中碰巧遇到此类问题,那么就直接秒杀吧,哈哈。
首先简历一个stuscore表。其中name为姓名,subject为科目,score为成绩。
create table stuscore( name varchar(20), subject varchar(20), score int )
1、查找出有两门成绩小于60分的学生的所有成绩的平均成绩
思路:首先求出有两门成绩小于60分的学生姓名,然后在求其平均成绩
select name,avg(score) from stuscore where name in (select name from stuscore where score < 60 group by name having count(*) >= 2) group by name
2、查询每个学生最大分数的科目及分数
select a.name,a.subject,a.score from stuscore a, (select name max(score) score from stuscore group by name) b where a.name = b.name and a.score = b.score
3、-- 行列转换
select name as '姓名', max(case subject when '语文' then score else 0 end) as '语文', max(case subject when '数学' then score else 0 end) as '数学', max(case subject when '英语' then score else 0 end) as '英语' from stuscore group by name
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。