sql 条件求和_SQL进阶之路——汇总分析

本文介绍了SQL的汇总分析,包括count、sum、avg、max和min等函数的使用。深入讲解了分组(group by)、对分组结果指定条件(having)以及如何解决实际业务问题。此外,还探讨了查询结果的排序(order by)、理解报错信息的方法和SQLZOO练习,帮助读者提升SQL技能。
摘要由CSDN通过智能技术生成

b25a2a440d84b6822290c730cb06f527.png

一、汇总分析

汇总函数:

  • count:求某列的行数

58b85c8f30d005a7b36e292aa667c14e.png
count函数如果输入列名,得到除去空值以后的数

563ee03fe605702436bba666986184ee.png
count函数如果输入*,则显示全部行数(包括空值)
  • sum:对某列数据求和

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

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

2660e9d9807c7a20cd3c4397bfef1358.png
  • 练习

9e316d315fa6bc8f944a7f5003deb245.png

18d11ff937adc219173d1194dbf81091.png

二、分组

  • group by

30e0519715a50d295ed6e9b9b998d0e1.png
  • 练习

ceb62d62e7020d8fb95a189513185014.png

8dc578fd58f5ae6d10d8384fe732b3b0.png

三、对分组结果指定条件

  • having 对于分组之后的数据进行指定条件

6df4fed4b0cd13ef01bdbbd141979b90.png
  • 练习

40c131a7b9f0a539d3859316e7b37352.png

07159f40155eccf2aef7c8b65be10e46.png

ed1770f02399068d1920dd1d9203f2fc.png

四、用sql解决业务问题

  • 将需求写成通俗易懂的话
  • 写出分析思路
  • 写出相应的sql子句

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

分析思路:

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

写出相应的sql子句:

f48b945de279da5907c588ac919f1f96.png

五、对查询结果排序

order by 子句:对查询结果排序

desc:降序 asc:升序

2d7fd69ef5d4996ee736f4ee7a1d887b.png
  • 在select子句后运行

8dd79167e28cd19f2a3438dab7b423fd.png
  • 指定多个顺序排名:从左到右按顺序排列,从第一个列名开始,若遇到相同数值,则从第二列列名还是排序,以此类推。

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

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

81410c04956f38ef4e3f268b1a25a9b6.png
  • 练习

a751f8129eed5f27aea46d467726a21b.png

2d7fd69ef5d4996ee736f4ee7a1d887b.png

六、如何看懂报错信息

常见错误:

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

七、运行顺序

d6f02eb8632cd75ac19b1bcc994f3a80.png

八、SQLZOO练习

6b81817661e76a74d78b7f0ba768ff24.png

29e51b62409d3ab074fdbc4df76ee887.png

9fde02c2bbbbb108f06f811ca7da93ba.png

80254a408c2af1412ec9303564c001f7.png

f968c6d588c9ec83920fc27a504ea07f.png

7d7c4c767f00d375c78e7d1a255cb91b.png

d1bafc453d05a279f708e29d9d923ff9.png

5ca286f36f14aa979e74537d7c6b7789.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值