深圳网站建设 排行榜,梅兰商贸网站开发设计,河南网站seo地址,天津网站制作机玩法部目录
1.学生表
2.一道SQL语句面试题#xff0c;关于group by表内容#xff1a;
3.表中有A B C三列,用SQL语句实现#xff1a;当A列大于B列时选择A列否则选择B列#xff0c;当B列大于C列时选择B列否则选择C列
4.
5.姓名#xff1a;name 课程#xff1a;subject 分数关于group by表内容
3.表中有A B C三列,用SQL语句实现当A列大于B列时选择A列否则选择B列当B列大于C列时选择B列否则选择C列
4.
5.姓名name 课程subject 分数score 学号stuid
1.计算每个人的总成绩并排名(要求显示字段姓名总成绩)
2.计算每个人的总成绩并排名(要求显示字段: 学号姓名总成绩)
3.计算每个人单科的最高成绩(要求显示字段: 学号姓名课程最高成绩)
4.计算每个人的平均成绩要求显示字段: 学号姓名平均成绩
5.列出各门课程成绩最好的学生(要求显示字段: 学号姓名,科目成绩)
6.列出各门课程成绩最好的两位学生(要求显示字段: 学号姓名,科目成绩)
7.统计如下学号 姓名 语文 数学 英语 总分 平均分
8列出各门课程的平均成绩要求显示字段课程平均成绩
9列出数学成绩的排名要求显示字段学号姓名成绩排名
10列出数学成绩在2-3名的学生要求显示字段学号姓名,科目成绩
11求出李四的数学成绩的排名
12统计如下课程 不及格0-59个 良60-80个 优81-100个
13统计如下数学:张三(50分),李四(90分),王五(90分),赵六(76分)
14.计算科科及格的人的平均成绩
总结 1.学生表
(学生id姓名性别分数)students_idname,sex,score
班级表班级id班级名称classc_idc_name
学生班级表班级id学生idstudent_class(s_id,c_id)
1.查询一班得分在80分以上的学生
2.查询所有班级的名称和所有版中女生人数和女生的平均分
题解: 1 .select * from student where score 80 and s_id in ( select sid from student_class where c_id( select c_id from class where c_name 一班 )) 2 .select c.c_name,女生人数 sum (s.s_id),平均分 avg (s.score) from classes c inner join student_class sc on sc.c_idc.c_id inner join students s on s.s_idsc.s_idwhere s.sex 女 group by c.c_name 2.一道SQL语句面试题关于group by表内容 info 表 date result 2005-05-09 win 2005-05-09 lose 2005-05-09 lose 2005-05-09 lose 2005-05-10 win 2005-05-10 lose 2005-05-10 lose 如果要生成下列结果, 该如何写sql语句? win lose 2005-05-09 2 2 2005-05-10 1 2 答案 ( 1 ) select date , sum ( case when result win then 1 else 0 end ) as win, sum ( case when result lose then 1 else 0 end ) as lose from info group by date ; ( 2 ) select a.date, a.result as win, b.result as lose from ( select date , count ( result ) as result from info where result win group by date ) as a join ( select date , count ( result ) as result from info where result lose group by date ) as b on a.date b.date; 2.学生成绩表(stuscore) 3.表中有A B C三列,用SQL语句实现当A列大于B列时选择A列否则选择B列当B列大于C列时选择B列否则选择C列 select ( case when a b then a else b end ), ( case when b c then b else c end ) from table ;
4. 有一张表里面有3个字段语文数学英语。其中有3条记录分别表示语文70分数学80分英语58分请用一条sql语句查询出这三条记录并按以下条件显示出来并写出您的思路? 大于或等于80表示优秀大于或等于60表示及格小于60分表示不及格。? 显示格式? 语文 数学 英语? 及格 优秀 不及格? ------------------------------------------ select (case when 语文80 then 优秀 when 语文60 then 及格 else 不及格) as 语文, (case when 数学80 then 优秀 when 数学60 then 及格 else 不及格) as 数学, (case when 英语80 then 优秀 when 英语60 then 及格 else 不及格) as 英语, from table
5.姓名name 课程subject 分数score 学号stuid 张三 数学 89 1 张三 语文 80 1 张三 英语 70 1 李四 数学 90 2 李四 语文 70 2 李四 英语 80 2 题解
1.计算每个人的总成绩并排名(要求显示字段姓名总成绩)
答案select name,sum(score) as allscore from stuscore group by name order by allscore
2.计算每个人的总成绩并排名(要求显示字段: 学号姓名总成绩)
答案select distinct t1.name,t1.stuid,t2.allscore from stuscore t1,( select stuid,sum(score) as allscore from stuscore group by stuid)t2where t1.stuidt2.stuidorder by t2.allscore desc
3.计算每个人单科的最高成绩(要求显示字段: 学号姓名课程最高成绩)
答案select t1.stuid,t1.name,t1.subject,t1.score from stuscore t1,(select stuid,max(score) as maxscore from stuscore group by stuid) t2where t1.stuidt2.stuid and t1.scoret2.maxscore
4.计算每个人的平均成绩要求显示字段: 学号姓名平均成绩
答案select distinct t1.stuid,t1.name,t2.avgscore from stuscore t1,(select stuid,avg(score) as avgscore from stuscore group by stuid) t2where t1.stuidt2.stuid
5.列出各门课程成绩最好的学生(要求显示字段: 学号姓名,科目成绩)
答案select t1.stuid,t1.name,t1.subject,t2.maxscore from stuscore t1,(select subject,max(score) as maxscore from stuscore group by subject) t2where t1.subjectt2.subject and t1.scoret2.maxscore
6.列出各门课程成绩最好的两位学生(要求显示字段: 学号姓名,科目成绩)
答案select distinct t1.* from stuscore t1 where t1.id in (select top 2 stuscore.id from stuscore where subject t1.subject order by score desc) order by t1.subject
7.统计如下学号 姓名 语文 数学 英语 总分 平均分
答案select stuid as 学号,name as 姓名,sum(case when subject’语文’ then score else 0 end) as 语文,sum(case when subject’数学’ then score else 0 end) as 数学,sum(case when subject’英语’ then score else 0 end) as 英语,sum(score) as 总分,(sum(score)/count(*)) as 平均分from stuscoregroup by stuid,name order by 总分desc
8列出各门课程的平均成绩要求显示字段课程平均成绩
答案select subject,avg(score) as avgscore from stuscoregroup by subject
9列出数学成绩的排名要求显示字段学号姓名成绩排名
答案
declare tmp table(pm int,name varchar(50),score int,stuid int)
insert into tmp select null,name,score,stuid from stuscore where subject’数学’ order by score desc
declare id int
set id0;
update tmp set idid1,pmid
select * from tmp
oracle:
select DENSE_RANK () OVER(order by score desc) as row,name,subject,score,stuid from stuscore where subject’数学’order by score desc
ms sql(最佳选择)
select (select count(*) from stuscore t1 where subject ’数学’ and t1.scoret2.score)1 as row ,stuid,name,score from stuscore t2 where subject ’数学’ order by score desc
10列出数学成绩在2-3名的学生要求显示字段学号姓名,科目成绩
答案select t3.* from(select top 2 t2.* from (select top 3 name,subject,score,stuid from stuscore where subject’数学’order by score desc) t2 order by t2.score) t3 order by t3.score desc
11求出李四的数学成绩的排名
答案
declare tmp table(pm int,name varchar(50),score int,stuid int)insert into tmp select null,name,score,stuid from stuscore where subject’数学’ order by score descdeclare id intset id0;update tmp set idid1,pmidselect * from tmp where name’李四’
12统计如下课程 不及格0-59个 良60-80个 优81-100个
答案select subject, (select count(*) from stuscore where score60 and subjectt1.subject) as 不及格,(select count(*) from stuscore where score between 60 and 80 and subjectt1.subject) as 良,(select count(*) from stuscore where score 80 and subjectt1.subject) as 优from stuscore t1 group by subject
13统计如下数学:张三(50分),李四(90分),王五(90分),赵六(76分)
答案
declare s varchar(1000)set s”select s s’,’name(‘convert(varchar(10),score)’分)’ from stuscore where subject’数学’ set sstuff(s,1,1,”)print ‘数学:’s
14.计算科科及格的人的平均成绩
答案select distinct t1.stuid,t2.avgscore from stuscore t1,(select stuid,avg(score) as avgscore from stuscore group by stuid ) t2,(select stuid from stuscore where score60 group by stuid) t3 where t1.stuidt2.stuid and t1.stuid!t3.stuid;
select name,avg(score) as avgscore from stuscore s where (select sum(case when i.score60 then 1 else 0 end) from stuscore i where i.name s.name)3 group by name
1. 用一条SQL 语句 查询出每门课都大于80 分的学生姓名
name kecheng fenshu 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王五 语文 81 王五 数学 100 王五 英语 90 A: select distinct name from table where name not in (select distinct name from table where fenshu80) select name from table group by name having min(fenshu)80
总结
感谢每一个认真阅读我文章的人
我个人整理了我这几年软件测试生涯整理的一些技术资料包含电子书简历模块各种工作模板面试宝典自学项目等。欢迎大家点击下方名片免费领取与我一起学习交流。