sql 分组求和_从零学会SQL--汇总分析

本文详细介绍了SQL的汇总分析,包括count、sum、avg、max和min等函数的用法,并通过实例讲解了如何进行数据分组、设定条件以及对查询结果排序。同时,文章还讨论了如何理解和解决SQL运行过程中的常见错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、汇总分析

汇总函数:

  • count:求某列的行数

cf02a7b0b7d9c5852a59531452d9ab7f.png
排除Null空值一栏

16cc9be456654e03dc585d8e2c1ea64d.png

2b05794964caf952e2f86551e9cb8d4b.png
计算包含空值在内的所有行数

acddc9e12019e2332eaf25a5ef0a2634.png

935b92e2480ecd113889487985cc284a.png

6b1f44c72f0ab5aee71581617cc57721.png
  • sum:对某列数据求和

99954f24e1786957d9a9c8a3008eed39.png

36340f612b3066b78add50d4d0ee4ce4.png
  • avg:求某列数据的平均值

fc3d3054429edd4c10616c99784a4d2a.png

86e75de22d5f6b38d4618d3c4665d839.png
  • max:求某列数据的最大值
  • min:求某列数据的最小值

dbdf10e9fe9376ba48f8f143065c2f3a.png

ab4f8169e15081426dd2f45d028480a6.png
  • 练习:

067fbc6e9bb7e63300114e6a2676b315.png

dfcd67fc927c0312c39d91fdb1050097.png

6545d1ac9b7c59e6fc04cfce4cc8ee4b.png

973fcd13bff4573dc7b12e8653c01c5b.png

二、分组

b782098369c40356e86bdb2c67f1a54b.png

6380ee2c8f285947c3943ad28e436560.png

练习:

d0a26e5fea7e51dfe0f8e88b9eb5a293.png

df31ba6c2af2ee75d14988922e1c6a03.png

085ed1585c03fe3065e7919ef7b5a0d2.png

0689d9d3083f47b4c8a2f66fbdc309e4.png

三、对分组结果指定条件

79c9767f905b024b99f38991606d9594.png

0d3f0e0974fc571797b134315928f116.png

d3aa42e6971a306a594705788bcdf1fc.png

8a434e5fe766df0b9fb7e58f5693b23c.png

23b216bf618d9b78d89fa210a1b3eb03.png

ad8c72a6ca8160f65d5721439f866347.png

四、利用sql解决业务问题

Q、如何计算各科的平均成绩

分析思路:

问题翻译成易理解的:如何计算每门课程的平均成绩

对应sql各个语句:

  • select 查询结果(每门课的课程号:分组;平均成绩:avg(成绩))
  • from 从哪张表中查找数据(score表)
  • where 查询条件 (无)
  • group by 分组(每门课:按课程号分组)
  • having 对分组结果指定条件(无)

f12a0504bc192e5d21b34998c74ac683.png

87df50711b88565b49b83b035e588f78.png

Q、如何计算各科的平均成绩并且平均成绩大于等于80分

分析思路:

  • select 查询结果(每门课的课程号:分组;平均成绩:avg(成绩))
  • from 从哪张表中查找数据(score表)
  • where 查询条件 (无)
  • group by 分组(每门课:按课程号分组)
  • having 对分组结果指定条件(平均成绩>=80)

3e3f8c877c9e8ae747527009f1a4fd29.png

ee029817607ed80afd8b0aff833a1079.png

五、对查询结果排序

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

  • 在select 字句后最后运行

c2293e8fb5a907ca0f6f48a9de08277d.png

9137e27385b83d02b6eb7a151b051fd0.png
  • 指定多个排序列名:按顺序排列

eef55a82f60d85ebc1d0d2f5f19d9e02.png

c121ed0517334c76c4103bb6688ef782.png
  • 空值(null)的排序:空值会在查询结果的开头显示,方便查找空值时操作

b6f8339c3e022649a4a9b59ede36ce78.png

b1b81c1d80fbaccbea3e8cea6146e50d.png
  • 从查询结果中取出指定行:limit

617ccb3a1a50d8ae2079feab3b071f51.png
  • 练习:

7453966799bc612bc88e2edd865eb72d.png

a7d90f258bd45ee854495f74357fc220.png

9ce65f98be26a52d7b399c7d098e89cd.png

4eeb20721a36a751be482c6124479109.png

六、如何看懂报错信息

  • 在group by中使用了select里的别名
  • 在where中使用聚合函数:例如直接使用求和、计数等函数
  • 字符串类型的数字:存放数据时将数据类型设置为字符串,而数值类型的排序和字符串类型的排序是不一致的

七、sql运行顺序

b54c9c9880bae609f96c7e49b3434d45.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值