![7b4e1bbefd35b2b03add588568e4968b.png](https://i-blog.csdnimg.cn/blog_migrate/589913913301d98fbfb5ba9078d30615.jpeg)
1、汇总查询
汇总是数据分析中常用的基础操作,所谓汇总就是 求和、求均值、求中无数、计数、最大值、最小值等等,这些操作在excel中都有对应的函数去实现,那在SQL中如何实现呢?
也是通过函数来实现的;
SQL常用的聚合函数:
求和 sum
计数 count
求均值 avg
最大值 max
最小值 min
- 案例:
![02f70ad24cdb15917a73a5ed7a082ec9.png](https://i-blog.csdnimg.cn/blog_migrate/f922e83b68ccdeeb28698545b0634ef7.png)
![bb562012a4d54e1b213c1bb47f76c184.png](https://i-blog.csdnimg.cn/blog_migrate/762f55c3e5a8d1010dd1c66b9ab17837.png)
2、分组 group by
直接上练习:
![ef3ed12a1a15545a7d2e055991703f29.png](https://i-blog.csdnimg.cn/blog_migrate/67a7e1af6b27e574db88ed1e58f60231.jpeg)
![6fc9d38a2f287a4812dd8059ac0fde6f.png](https://i-blog.csdnimg.cn/blog_migrate/840225ccfe32ec553b0e5ff251784cb1.png)
![291cd5e086c499131d33e28dd69122e7.png](https://i-blog.csdnimg.cn/blog_migrate/46cd0c4d84935fef43fe95ef9fc17e74.png)
3、分组 + 条件筛选
这里涉及到2个重要的知识点:
第一,这里的条件筛选为什么不用where;
首先,where 子句不能与聚合函数一起使用,因为where 后面只能跟数据表中的原有的字段,通过聚合函数计算过的字段,不是数据表中原有的字段;
其次,where 的执行顺序是紧跟在from之后的,也就是说where是在数据从磁盘读取到内存中时,对原始表数据进行一条条的过滤;
那为什么用having呢?
having是对 group by 已经分组的数据进行条件过滤;
与 where 相反,having可以搭配聚合函数一起使用;
第二,为什么 having子句 后面不能直接引用 select 中的别名;
这里是SQL语句执行顺序的问题,having的执行优先级在 select 之前,所以having完全不知道select所引用的别名是什么;
group by ... having子句
![8efbdb086a1c81d96596ba2cc59b6d27.png](https://i-blog.csdnimg.cn/blog_migrate/289981c4dbc00123628dc841c81fa71c.jpeg)
![8e78807806bdb8b57a3b60da4108b47e.png](https://i-blog.csdnimg.cn/blog_migrate/b67bb6abdf66de2ab6305471fcc208f4.jpeg)
![7d21641fe0e17cce288814ded5009fbc.png](https://i-blog.csdnimg.cn/blog_migrate/40906b185fe23b1a8f9bb9cf16dc1c83.jpeg)
4、SQL语句的执行顺序
from - where - group by - having - select - order by - limit
5、排序 order by 子句
order by <列名> desc
升序 asc
降序 desc
6、limit 分页查询
limit m,n 从第 m+1 条记录开始, 返回 n 条记录
select * from student limit 10 显示前10行记录(默认m = 0)
select * form student limit 9,10 显示第10~20行记录
7、SQL处理业务问题,遇到难点时:
把问题翻译成大白话
写出分析思路
根据思路写出对应的SQL语句
8、sqlzoo练习
![476a0e80a69dc913fe647994f8c151b2.png](https://i-blog.csdnimg.cn/blog_migrate/50386b87eef066556eb8688c5d3ed917.jpeg)
![3d0215df47186556e75f8b3210ed5d3e.png](https://i-blog.csdnimg.cn/blog_migrate/e4d9e05acfe2d3c077d7e45b0f1da4b5.png)
![4f7e69127d3c5fb77d517862772150f1.png](https://i-blog.csdnimg.cn/blog_migrate/f534f27a9a710994f8caefe8b683c310.png)
![7b0e7a6cfda627fe5c81afc641e00c34.png](https://i-blog.csdnimg.cn/blog_migrate/d929435d322ad4d0dcb268445b91d178.jpeg)
![33614ca88105633b21bb49cc51b4af0b.png](https://i-blog.csdnimg.cn/blog_migrate/a87fb3b13843c5c111987339f0f908a4.jpeg)
![bc0341a5b0f79988d47a6c5a3b2917d6.png](https://i-blog.csdnimg.cn/blog_migrate/894dcd81b11b3829a1e359a11f76de92.jpeg)
![6b5715654ce4295e8b2a083e40ca6b94.png](https://i-blog.csdnimg.cn/blog_migrate/48e3b0ecfa139f19bb8bc3b2ec716504.png)
count和sum练习
![74ecf730312a5c7ca344622ae0b66043.png](https://i-blog.csdnimg.cn/blog_migrate/9bf8994912cc51a89b5d9bf497371bb9.png)
![9b437d10908f00d0816798a137fc0a01.png](https://i-blog.csdnimg.cn/blog_migrate/b38dbdf51f18c318c231912c6c0cbc4a.png)
![230af75e4a2960e364e0fcf75936bafd.png](https://i-blog.csdnimg.cn/blog_migrate/f6a687a1501d68cb6165d225a307cd7e.png)
![c061dc2befafbf612104d50235d74828.png](https://i-blog.csdnimg.cn/blog_migrate/00b77094b25f5509ffa863f766369e1e.jpeg)
![3389425e43e878297fd5c6532412d4cb.png](https://i-blog.csdnimg.cn/blog_migrate/046c1f3609ad1b42480a52d2158c0b40.png)
![3b594e55e8b4e31f5dd845c5ebfada73.png](https://i-blog.csdnimg.cn/blog_migrate/2c223254be511cb186b0c95d8aad1049.png)
![a9d22a3bdf6437137d87f7d35a8fc415.png](https://i-blog.csdnimg.cn/blog_migrate/aad70ee4fb6c53bfe29dbed7637f24e5.jpeg)
![9accd0a4af5f291db68066402264be2d.png](https://i-blog.csdnimg.cn/blog_migrate/8d982dea6e9e2f3b83cebc48d09b0796.jpeg)
还是比较简单滴~