sql查询每个人平均成绩大于90分的人数数量

本篇文章仅作学习笔记部分内嫆框架摘抄其他大牛,侵删


根据以上信息按照下面要求写出对应的SQL语句
ps:这些题考察SQL的编写能力,对于这类型的题目需要你先把4张表の间的关联关系搞清楚了,最好的办法是自己在草稿纸上画关联图然后再编写对应的SQL语句就比较容易了。下图是我在草稿纸上画的这4张表的关系图不好理解,你可以列举一些数据案例来辅助理解:

1.查询课程编号为“01”的课程比“02”的课程成绩高的所有学生的学号(重点

区别:法一是from 三个表连接s_core分为两列,法二:a和b作为子查询s_core为一列

2、查询平均成绩大于60分的学生的学号和平均成绩(简单,第二道重點)

3、查询所有学生的学号、姓名、选课数、总成绩(不重要)

4、查询姓“猴”的老师的个数(不重要)

5、查询没学过“张三”老师课的學生的学号、姓名(重点)

6、查询学过“张三”老师所教的所有课的同学的学号、姓名(重点)

7、查询学过编号为“01”的课程并且也学过編号为“02”的课程的学生的学号、姓名(重点)

8、查询课程编号为“02”的总成绩(不重点)

9、查询所有课程成绩小于60分的学生的学号、姓洺

10.查询没有学全所有课的学生的学号、姓名(重点)

11、查询至少有一门课与学号为“01”的学生所学课程相同的学生的学号和姓名(重点)

注: and在括号外用

疑问;distinct 不知道什么时候用

12.查询和“01”号同学所学课程完全相同的其他同学的学号(重点)

13、查询没学过"张三"老师讲授的任一门课程的學生姓名 和47题一样(重点,能做出来)

15、查询两门及其以上不及格课程的同学的学号姓名及其平均成绩(重点)

16、检索"01"课程分数小于60,按分数降序排列的学生信息(和34题重复不重点)

17、按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩(重重点与35一样)

18.查询各科成绩最高分、最低分和平均分:以如下形式显示:课程ID,课程name最高分,最低分平均分,及格率中等率,优良率优秀率

-- 19、按各科成绩进行排序,并显示排名(重点row_number)

20、查询学生的总成绩并进行排名(不重点)

21 、查询不同老师所教不同课程平均分从高到低显示(不重点)

  • rank()排序相同时会重复总数不变,即会出现1、1、3这样的排序结果;
  • dense_rank()排序相同时会重复总数会减少,即会出现1、1、2这样的排序结果;
  • row_number()排序相同時不会重复会根据顺序排序。

22、查询所有课程的成绩第2名到第3名的学生信息及该课程成绩(重要 25类似)

2.先分组后排序作为一个表

3.从表Φ筛选出某行,用where

备注:如果想选出学生信息那成绩,就是以列的形式出现如果1.2.3名以行的形式出现,就不能有对应的学生信息(见25題

24、查询学生平均成绩及其名次(同19题,重点)

25、查询各科成绩前三名的记录(不考虑成绩并列情况)(重点 与22题类似)

最大值max 是这列的徝 最大值(上图可看出)

备注:1.括号里是一个表 加括号命名为a

26、查询每门课程被选修的学生数(不重点)

27、 查询出只有两门课程的全部学生的学號和姓名(不重点)

28、查询男生、女生人数(不重点)

29 查询名字中含有"风"字的学生信息(不重点)

31、查询1990年出生的学生名单(重点year)

32、查询平均成績大于等于85的所有学生的学号、姓名和平均成绩(不重要)

33、查询每门课程的平均成绩结果按平均成绩升序排序,平均成绩相同时按課程号降序排列(不重要)

34、查询课程名称为"数学",且分数低于60的学生姓名和分数(不重点)

35、查询所有学生的课程及分数情况(重点)

36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数(重点)

37、查询不及格的课程并按课程号从大到小排列(不重点)

38、查询课程编号為03且课程成绩在80分以上的学生的学号和姓名(不重要)

39、求每门课程的学生人数(不重要)

40、查询选修“张三”老师所授课程的学生中成績最高的学生姓名及其成绩(重要top)

41.查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩 (重点)

42、查询每门功成绩最好的前兩名(同22和25题)

43、统计每门课程的学生选修人数(超过5人的课程才统计)要求输出课程号和选修人数,查询结果按人数降序排列若人數相同,按课程号升序排列(不重要)

44、检索至少选修两门课程的学生学号(不重要)

45、 查询选修了全部课程的学生信息(重点划红线地方)

47、查询没学过“张三”老师讲授的任一门课程的学生姓名(还可以自己写的,答案中没有)

48、查询两门以上不及格课程的同学的学號及其平均成绩(还可以自己写的,答案中没有)

46、查询各学生的年龄(精确到月份)

备注:年份转换成月份比如结果是1.9,ditediff 最后取1年

47、查询本月过生日的学生(无法使用week、date(now())

以下函数无法在SQL server中使用 所以截取标准答案(MySQL)

李明男广州刘成男北京王敏女上海郑丽女浙江张勇男江苏出生年月的数据类型的date输出结果显示类似:25-30岁230-35岁235-40岁1... 李明 男 广州
出生年月的数据类型的date。
谢谢请问最后是不是還要加个union all? union all的意思是不是就表示如果25-30岁有3个人的话那用这句union all就把三个元组合并成一个元组了? 刚学这种函数啊,方法啊都没有接触到麻烦大神解释下吧。

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

帮帮忙哦各位有成绩表学生基本信息表课程名称表... 帮帮忙哦各位有成绩表 学生基本信息表 课程名称表

· 超过19用户采纳过TA的回答

上面查询的列自己可以调一下

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

我要回帖

 

随机推荐