请写出查询该表中成绩最大值的sql语句_SQL-汇总分析

本文介绍了SQL中的汇总函数,如count、sum、avg、max和min的用法,强调了它们在SELECT和HAVING语句中的应用。接着讲解了如何使用GROUP BY进行数据分组,并通过HAVING指定分组条件。最后讨论了ORDER BY用于查询结果排序的重要性和实际业务问题的SQL解决方案,提供了一系列练习题以巩固概念。
摘要由CSDN通过智能技术生成

690ed0b721a726ec6f9aba534a8dc797.png

一、汇总函数(Aggregate Functions)

count(列名):求某列的行数

sum(列名):对某列的数据求和

avg(列名):对某列的数据求平均值(只能对数值类型的列计算)

max(列名):求某列数据的最大值(只能对数值类型的列计算)

min(列名):求某列数据的最小值

需要注意的点:

  • 只有count()可以用星号*代替列名
  • 每个函数只能操作一个列
  • 汇总函数只能运用在SELECT 或者 HAVING 语句中。
  • distinct对max/min语句没有影响,但是对sum/avg有影响。

练习:

1.查看课程编号为“0002”的总成绩。

536a2444fbf82f67559e1f95373d05ec.png

2. 查询选了课程的学生人数。

c87fca0bf559f2dd34ee43c733423571.png

二、分组(Grouping)

可以使用group by 语句对数据记录进行分组。

select 查询结果

from 从哪张表中查找数据

where 查询条件

group by 分组

SQL运行顺序:

  • Step1 from从哪张表格中查找数据
  • Step2 where 查询出符合条件的行
  • Step3 group by 对数据进行分组
  • Step4 select 在select语句中我们可以应用函数,得到组合结果。

练习:

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

8e000b00b1d0630e8627454052479015.png

795d4bc3da5087b5ce8638abc2af1f53.png

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

2d198e6aa642f5f7201a420efa39f9fe.png

e1c8b1e98c6009e832bf1d7151d81b29.png

3. 查询男生、女生人数

ea68f4d6ddde08e2322b19ff2ba56cec.png

ee2691e4314c2587de3c5a134bf49d8d.png

三、对分组指定条件(Having)

运用having对分组指定条件。

select 查询结果

from 从哪张表中查找数据

where 查询条件

group by 分组

having 对分组结果指定条件

SQL运行顺序:

  • Step1 from从哪张表格中查找数据
  • Step2 where 查询出符合条件的行
  • Step3 group by 对数据进行分组
  • Step4 having 对分组结果指定条件
  • Step5 select 在select语句中我们可以应用函数,得到组合结果

练习:

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

eb3df86a69c0abad501947eb470667f4.png

b9f6b10327ff5ea2152fd43c7c6130c9.png

2. 查询至少选修两门课程的学生学号。

c976d5aa390fe4e7094f4e06f05d7097.png

f2ba09327fd3e3c72c84a4cbe094c75a.png

3. 查询同名同姓学生名单并统计同名人数。

7c4f6de4d3c0a7f2a656383a0a6d554c.png

fbeea8b1ef283ec21e336e77d27c1303.png

四、 对查询结果进行排列(order by)

select 查询结果

from 从哪张表中查找数据

where 查询条件

group by 分组

having 对分组结果指定条件

order by 对查询结果排序,降序desc,升序asc

limit 从查询结果中取出指定行

SQL运行顺序:

  • Step1 from从哪张表格中查找数据
  • Step2 where 查询出符合条件的行
  • Step3 group by 对数据进行分组
  • Step4 having 对分组结果指定条件
  • Step5 select 在select语句中我们可以应用函数,得到组合结果
  • Step6 order by对查询结果进行排序
  • Step7 limit从查询结果中取出指定的行

练习:

  1. 查询不及格的课程并按课程号从大到小排列。

ac0647d52fe54a53fc34391dea6bf28b.png

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

901f1d2e8066e2310d9ab5df7e58bdd0.png

五、用sql解决业务问题

step1 翻译成大白话

step2 写出分析思路

step3 写出对应的sql子句

练习:

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

每门课程--->分组

平均成绩--->汇总函数avg

大于等于80--->条件

思路:

select 课程号,平均成绩

from score表格提取数据

where 没有

group by 课程号

having 平均成绩大于等于80

order by 没有

limit 没有

7967eddb3f72b004d2c465670683d35f.png

补充:

转义字符

在字符串中,有些符号有特殊含义,例如EUGENE O'NEILL中的单引号('),使用两个单引号('')表示字符串里面的单引号('),也就是转义字符。

即在写条件时,EUGENE O'NEILL,在sql中应该写成'EUGENE O''NEILL'


sqlzoo平台Select_From_Nobel

这部分题目使用的是nobel表:诺贝尔奖信息表

28c75c1edc9ede07a3952ff7028517de.png

88fe24d6d99567dd16f6e42d0d4f051b.png

bcb6cf9c18c2facaec1877a074e403b2.png

b8f84b98853c7a0656aebff37642f4b7.png

9bc65216a3abe3d063578e4447945a00.png

0712a28bf1dbb9fcccd35340b424384e.png

6ad19f446b2a220d979f2a61c78d2179.png

72f60c690bbaf565af1b1fa3bedf1e5a.png

af15b1588b12a39755b5c9ecc643fc87.png

f91818dcd9dba0f57c17219b3447a792.png

9e8b214af3a1ea70d1821ef1a85eefc5.png

ebf4427fac994fd8df1e599894a286b5.png

3d28bc3ba40a9c8121eac9c20ba86232.png

a00e15854547d3f59f64d45621b14a0a.png

691819c6e5ce064709f9ed89c397c22c.png

sqlzoo平台Select_From_COUNT

这部分题目使用的是world表:世界国家信息表

3ae8abd2599934e7bf398d28489789e8.png

b4175c15b7faa150875be43adf932bc4.png

874ebf4a248355c55feb41041e123e46.png

440186d8fb6f8f03f7c0b518b027c3d3.png

05d8fb394d42702a193a23c2630e6222.png

6eabd1b6aa412948fd364192664e790a.png

dcc2468d525a1ea4f70c07aa3b88a1f3.png

25dfa92e2d4a5531eadd883c7b07bdab.png

3d8c825ed7af25dae5666cec4babdf94.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值