一、汇总分析
(一)语法
Sql中的汇总函数有以下几个:
Count :求某列的行数
Sum :对某列数据求和(只对数值类型的列进行计算)
Avg :求某列数据的平均值(只对数值类型的列进行计算)
Max : 求某列数据的最大值
Min :求某列数据的最小值
Select count/ sum/ avg/max/min 列名
From 表名;
(二)实例
1、count
![b6bbdcda49eae8be0d452da4b17aaf27.png](https://i-blog.csdnimg.cn/blog_migrate/6d1805f4d3f39dd1dfee7234dbe07eb6.jpeg)
PS:
(1)count(*)表示表格行数;
(2)count(distinct 列名):求某列的行数(去重)
![52d7c654c6a90730346905c8c8f28c2d.png](https://i-blog.csdnimg.cn/blog_migrate/c2dd5e934a19d2fc2ab63f5e52763ab8.jpeg)
2、sum
![aa37db2db50032fe4d2f75cccda0ae65.png](https://i-blog.csdnimg.cn/blog_migrate/31ebff024158e5fc87091c5aae624123.jpeg)
3、avg
![81253c3ba9527f347f2a918a010d50ca.png](https://i-blog.csdnimg.cn/blog_migrate/3ffe3518aec8f3cbd1355c5868304460.jpeg)
4、max和min
![7b6d814435da7a1397d6df5a802d3c97.png](https://i-blog.csdnimg.cn/blog_migrate/d60fb34dcef5e00f154081c9f84fe4d6.jpeg)
(三)练习
1、查询课程编号为“0002”的总成绩
![e1b4cb166f2dbed0330561d7f524b398.png](https://i-blog.csdnimg.cn/blog_migrate/a3dbd495ffb9a85dc9552b25d6af681f.jpeg)
2、查询选了课程的学生人数
![16106b735ca87db927a9da5049f3567c.png](https://i-blog.csdnimg.cn/blog_migrate/9b1aaa078ee47f8ae3aca5808b8900c0.jpeg)
二、分组
(一)语法
Select count/ sum/ avg/max/min 列名
From 表名
Where 条件
Group by 分组条件
(二)实例
![25cd983c21088a94d1c69e9a11985e1f.png](https://i-blog.csdnimg.cn/blog_migrate/8b80cb51e01435682b8b36deea0387fa.jpeg)
![e0a6cfd4b964a038b3a0ccba6e32fa1a.png](https://i-blog.csdnimg.cn/blog_migrate/dfb747129560a309f6712e0fb1c301a5.jpeg)
(三)练习
1、查询各科成绩最高和最低的分
![b1777063916232f7dfeec3858a8d8e8e.png](https://i-blog.csdnimg.cn/blog_migrate/d3d9c752fa5f4a73805a27082f00b029.jpeg)
2、查询每门课程被选修的学生数
![865ea9a121d1721fc7c509ee7aee356a.png](https://i-blog.csdnimg.cn/blog_migrate/a57b4a8484746a6e8fa44f416221b137.jpeg)
3、查询男生、女生人数
![bad94607c08ca20ce9607e564d410906.png](https://i-blog.csdnimg.cn/blog_migrate/d42fa71324698a5416f6ea041eda6b38.jpeg)
三、对分组指定条件
(一)语法
Select count/ sum/ avg/max/min 列名
From 表名
Where 查询条件
Group by 分组条件
Having 对分组结果指定条件
(二)实例
![c79f3dc084282895b4251509847e0ddc.png](https://i-blog.csdnimg.cn/blog_migrate/4c1c0e4ba3b08bb7dbb781536168e135.jpeg)
(三)练习
1、查询平均成绩大于60分的学生的学号和平均成绩
![e4c53aeee5d727f12c85572a20140d64.png](https://i-blog.csdnimg.cn/blog_migrate/28e2ab4ef0c94d0d50896ca576f98347.jpeg)
2、查询至少选择两门课程的学生学号
![c6f2e109c6a73ca11225294c5f42a7e5.png](https://i-blog.csdnimg.cn/blog_migrate/d5d058a74ceaeaf113dc85eb1096b517.jpeg)
3、查询同名同性学生名单并统计同名人数
![c2439cb1cd07025ec86e06f133b067ee.png](https://i-blog.csdnimg.cn/blog_migrate/40f4e2ee9dc8e641b5663ece1eb9515e.jpeg)
四、对查询结果进行排序
(一)语法
Select count/ sum/ avg/max/min 列名
From 表名
Where 查询条件
Group by 分组条件
Having 对分组结果指定条件
Order by 对查询结果进行排序(asc升序排列,desc降序排列)
(二)实例
1、单个列排序
![6789fc6e9978f7769107cd6676bd73bd.png](https://i-blog.csdnimg.cn/blog_migrate/a13ccbdfaa834168b6e93367df491ca2.jpeg)
2、多个列排序
![4c3ed807f9248d40eb546aa5d576df85.png](https://i-blog.csdnimg.cn/blog_migrate/8c01ce65b7bcda7c266e0833042bc677.jpeg)
3、空值的排序
![db64cf77259e88d4a96e25b7cd3626a9.png](https://i-blog.csdnimg.cn/blog_migrate/500d105b4fddacfddef9981901aa0f47.jpeg)
PS:如查询的结果有null值, null值默认为最大值,上图的结果可用来检查表格中是否有null。
4、从查询结果中取出指定的行
![a2d31d2c1a0901ee6d2e5d0af3caa177.png](https://i-blog.csdnimg.cn/blog_migrate/c70b9e5249493d8ced127f2c57ee07f2.jpeg)
(三)练习
1、查询不及格的课程并按课程号从大到小排列
![ec8c4e81fc8b7e0d80703f8b1b5e35bf.png](https://i-blog.csdnimg.cn/blog_migrate/102d97bccc1b7c5b33de0d7117125532.jpeg)
2、查询每门课程的平均成绩,结果按平均成绩升序排序,平均成绩相同时,按课程号降序排列
![4614d0ab433afcc2f5d4e27796242959.png](https://i-blog.csdnimg.cn/blog_migrate/236e9ee2239560b4f67cd801bff85455.jpeg)
3、检索课程编号为“03”且分数小于90的学生学号,结果按按分数降序排列
![f0a782c2b71824279742f8bf6993d35b.png](https://i-blog.csdnimg.cn/blog_migrate/51426190fd03ac9109ef6c71f1349973.jpeg)
4、统计每门课程的学生选修人数(超过2人的课程才统计)
![0f05ad3a15e86394f032288193331302.png](https://i-blog.csdnimg.cn/blog_migrate/ebbf68daddcb6635d6b3f978ca9d1790.jpeg)
5、查询两门以上课程成绩小于90的同学的学号及课程的平均成绩
![44adad8bc0ddfdf1a91fa138aeef93ec.png](https://i-blog.csdnimg.cn/blog_migrate/c1609537095b0397645fc99a82913b9c.jpeg)
五、汇总sql语法及运行顺序----需要记住这张表格
![da82532eab6b238e6fd87990f0d92043.png](https://i-blog.csdnimg.cn/blog_migrate/09013a38dd1fc6b1fe3219a70088545c.jpeg)