sql 查询总和_SQL之汇总分析

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:02   966   0

fed070c215091ca8b1da6acab28bf870.png

一、SQL聚合函数

  • AVG() - 返回集合的平均值。
  • COUNT() - 返回集合中的项目数。
  • MAX() - 返回集合中的最大值。
  • MIN() - 返回集合中的最小值
  • SUM() - 返回集合中所有或不同值的总和。

除COUNT()函数外,SQL聚合函数忽略null值。

这里在mayan:SQL初体验建立的数据库基础之上进行操作

ex:
1.查询课程编号为"0002"的总成绩

a5b16fcd9fdf4e44416bcb0a9af82f54.png

2.查询选课学生总数

6d25deb6d613a9fac443c6e2890c8d93.png

二、分组

因为聚合函数对一组值进行操作,所以它通常与SELECT语句的GROUP BY子句一起使用。 GROUP BY子句将结果集划分为值分组,聚合函数为每个分组返回单个值。基本语句结构如下:

SELECT c1, aggregate_function(c2)
FROM table
WHERE ...
GROUP BY c1

7529e8ba9c8aefde7029548c9b49914e.png

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

d6e45f02784f3ab9f143a29902b2b7b0.png

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

5438b2ff2353d6ac22c572625b902554.png

3.查询男生女生人数

b819014136239791b52927476512f24b.png

三、对分组结果指定条件

00b4c92ab2a8b847befd455f38d79e5e.png

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

4bb4b5fcfdc13c591e8a5f44a0fdc1dc.png

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

5e33edbdee9cabe68d57693fbd46bcc8.png

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

0f496913e588ef215278a4421c95d19e.png

四、如何用SQL解决业务问题

  1. 翻译成大白话
  2. 写出分析思路
  3. 写出对应SQL语句

ex:如何计算平均成绩大于80的各科成绩
1.如何计算每门课程平均成绩,并且平均成绩大于等于80分
2.

961fb9fc1270fbd4cbada2e6537d0482.png

3.

7b618040a17882d25fc5972cc62e6682.png

五、对查询结果排序

1.运用函数
降序(从大到小):desc
升序(从小到大):asc

2.示例

9baa713b82251b85d9f54fd64d0f29b7.png

ed4ff399e40da0f454ed035ce51913cd.png

970c758cbfe96f7b4968c54720f8022e.png

61fd11213c58f57c84d459196f847c82.png

7c5d4414a036d26fa481fa4a0e3a766d.png

474b7bac82cda237d41621927f07804b.png

3.ex:
3.1.查询及格课程并按课程号从大到小排列

b1d3756d2c7a2275c59d5c89b4bf8821.png

注意:Where 是一个约束声明,使用Where约束来自数据库的数据,Where是在结果返回之前起作用的,Where中不能使用聚合函数。
Having是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数。
在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行。而where子句在查询过程中执行优先级高于聚合语句。
HAVING子句可以让我们筛选成组后的各组数据,WHERE子句在聚合前先筛选记录.也就是说作用在GROUP BY 子句和HAVING子句前;而 HAVING子句在聚合后对组记录进行筛选。HAVING一般与GROUP BY连用。

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

664f08c2deaad65acc853358e9fd5830.png

五、如何看懂SQL报错信息

c5b408b7487c0cf542b85971f3e3128a.png

1efb1a1a5c3d59ceb90974bad5dd84c3.png

六、总结

a33257e144027a9702777a59a1826fb5.png
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP