视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
我们分组玩的游戏还记得吗_MySQL
2020-11-09 20:10:08 责编:小采
文档


use Myschool

--------------------上机练习1-------------------

--查询每个年级的总学时数,并按照升序排列

select gradeid as 年级,sum(Classhour)

from subject

group by gradeid

order by SUM(Classhour)

--查询每个参加考试的学员的平均分

select studentno as 学号,AVG(studentresult)

from result

group by studentno

select * from subject

--查询每门课程的平均分,并按照将序排列

select subjectid as 课程,AVG(studentresult)

from result

group by subjectid

order by AVG(studentresult) desc

--查询每个学生参加的所有考试的总分,并按照降序排列

select studentno as 学号,SUM(studentresult)

from result

group by studentno

order by SUM(studentresult) desc

---------上机练习2------------------

--查询每学期学时超过50的课程数

use myschool

select gradeid as 年级,COUNT(subjectid) as 课程数

from subject

where classhour>50

group by gradeid

--查询课程表的所有信息

select * from subject

--查询每学期学生的平均年龄

select * from student

select gradeid as 年级,AVG(DATEDIFF(yy,birthday,getdate()))as 平均年龄

from student

group by gradeid

--查询北京地区的每学期学生人数

select gradeid as 年级,COUNT(1) as 人数

from student

where address like('%北京%')

group by gradeid

--查询参加考试的学生中,平均分及格的学生记录,并按照成绩降序排列

select studentno,AVG(StudentResult) as 平均分

from Result

group by StudentNo

having AVG(StudentResult)>=60

order by 平均分 desc

--查询成绩表中的所有信息

select * from result

--查询开始日期为2014年2月22日的课程的及格平均分

select subjectid,AVG(studentresult) as 平均分

from Result

where ExamDate>='2014-2-22' and ExamDate<'2014-2-23'

group by SubjectId

having AVG(StudentResult)>=60

--统计至少有一次不及格的学生学号和次数。

select studentno,COUNT(1) as 次数

from Result

where StudentResult<60

group by StudentNo

注意: (1)where之后不能跟聚合函数

(2) having是对分组后的数据进行第二次筛选或者过滤,也就是说没有group by就没having

(3)如果语句中有group by关键字,那么select后只能跟group by后出现的列,或者是聚合函数

SQL语句的书写顺序: 执行顺序:

select 列名或聚合函数 (4)投影结果

from 表名 (1)定位到表

where 条件 (2)分组前的第一道过滤

group by 列名 (3)分组

having 聚合函数或者分组后的列名(5)分组后的第二道过滤

order by(6)最后排序

下载本文
显示全文
专题