sqlserver 数据库面试题目
发布时间:2020-12-12 13:16:30 所属栏目:MsSql教程 来源:网络整理
导读:? ? 今天参加完面试,遇到了一些sql题,现把这些题目一一列出,希望有人看到,如果你在面试过程中碰巧遇到此类问题,那么就直接秒杀吧,哈哈。 ? ? 首先简历一个stuscore表。其中name为姓名,subject为科目,score为成绩。 ??create?table?stuscore(????????
? ? 今天参加完面试,遇到了一些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 ? ? 说明:这里加上max函数的原因是group by name。具体可以看下group by的用法以及注意事项 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |