sql 聚合函数_Part11:用SQL做汇总分析(聚合函数,分组排序,如何解决业务问题)...

一、大纲

6c376d89e4b4f7a139564f235ea02764.png

二、实战

首先建立school数据库,下面有四张表student,teacher,score,course

9545c69fd056f61417b64fe66e870b1c.png
course表

d80d1e9d921696c0ea29fc68f22b432b.png
score表

4d8167c0c54343fe8985fb01521c7b35.png
student表

8ee4e04790bf39fa46df15d94c7eb194.png
teacher表

1.使用count函数统计列数据个数

0e1696e1bfcbde75e9a9b6b671a346d8.png

2.计算score表中,成绩的总分

5799a0dc4ff0687411dbd08dabd9be43.png

3.求score表中的成绩平均值,使用avg函数

aa888c64b0d25d6a37fbfac08cb527fa.png

4.计算score表中,成绩的最大值,最小值

1b0338d5296c7c26371e3bb840321a9e.png

5.如果需要删除重复值再统计,可以使用distinct

2e10e085556fe3fdf5b0b8953b752f0a.png

小试牛刀1:

(1)查询课程编号为“0002”的总成绩

c537eee602fe5863f29753daa40efca3.png

(2)查询选了课程的学生人数

cdf455814183327b60c36554a8199923.png

6.按照性别分组统计学生人数

顺序:先分组-再count函数统计-组合结果

c395381e87a3e87334139b207fd34fbc.png

7.查询出生日期在1990年01月01日之后的学生,然后按照性别统计人数

eb10ef56256e854e77819744c4ac4ad9.png

小试牛刀2:

(1)查询各科成绩的最高分和最低分

f1cc439be35a4ae52e63ec76ec3d0a6b.png

(2)查询每门课程被选修的学生数

bff780a33a1c6645def8b9274a91c2f3.png

8.按照性别分组统计学生人数,然后取出数据项大于2的分组

4372012646d7ca24021a564032848a94.png

小试牛刀3:

(1)查询平均成绩大于60分学生的学号和平均成绩

781ff11b9550df81cb845ee9316e0e5f.png

(2)查询至少选修两门课程的学生学号

353a0fe1c4fcf721f3067e4c380443de.png

(3)查询同名同姓的学生名单并统计同名人数

866ae3b2087736cd2597b3b52c74be78.png

9.如何计算各科的平均成绩:1先按照学科将成绩分组,2计算每一组的平均值

c0d5482157770e6ac80919a040866cf9.png

10.如何计算每门课程的平均成绩,且平均成绩大于等于80分

step1:计算每门课程的平均成绩,找出大于等于80的平均成绩

step2:先按照课程号分组,对每个分组求平均成绩,然后在分组中选出>=80的分组和平均成绩

step3:select 课程号,avg(成绩)

from score

group by 课程号

having avg(成绩)>=80;

894f4d144b65f727992fe8be4a8f69a5.png

小试牛刀4:

(1)查询不及格的课程并按照课程号从大到小排列

step2:在score表中找到不及格的课程,然后按照课程号从大到小排列

step3:select 课程号,成绩

from score

where 成绩<60

order by 课程号desc;

a8e76a927257a65e735bf58b10d08149.png
score表原始数据

04e3954e0367aa454bc2e97c7237f2ff.png
运行结果

(2)查询每门课程的平均成绩,结果按照平均成绩升序,平均成绩相同时按照课程号降序排列

step2:先按照课程分组,求出每门课的平均成绩,然后按照平均成绩升序,课程号降序

step3:

select 课程号,avg(成绩)

from score

group by 课程号

order by avg(成绩) asc ,课程号 desc;

04abeaac8893c7730c6dd0ea06e3bbe6.png

拓展练习SQLzoo

https://sqlzoo.net/wiki/SELECT_from_Nobel_Tutorial/zh​sqlzoo.net

练习题结果截图:

1fc5188061be1b28cf30112f38a09ae2.png

201481d216997245b40af2acbe7e9f82.png

5b2e6474c87b3a5512c4de88e1f461a4.png

88cf4146621d3b2ab7c1d74ee4d71917.png

5528b1ab03a1107ebf4ce6eb3990ba1c.png

576fc4679dd0cc9949efc587cfe05d77.png

8629aa536c4e6bcddfd519fb1f575847.png

1cd06409992ebdc9ed6e6da9ba85b1ad.png

f5153ffc0e54c10720281770339e4648.png

ce5aa3dab4b549e1aed8a4fd2eb26e9a.png
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值