where后面跟select查询_3、MySQL高级查询

7b4e1bbefd35b2b03add588568e4968b.png

1、汇总查询

汇总是数据分析中常用的基础操作,所谓汇总就是 求和、求均值、求中无数、计数、最大值、最小值等等,这些操作在excel中都有对应的函数去实现,那在SQL中如何实现呢?

也是通过函数来实现的;

SQL常用的聚合函数:
求和  sum
计数  count
求均值  avg
最大值  max
最小值  min
  • 案例:

02f70ad24cdb15917a73a5ed7a082ec9.png

bb562012a4d54e1b213c1bb47f76c184.png

2、分组 group by

直接上练习:

ef3ed12a1a15545a7d2e055991703f29.png

6fc9d38a2f287a4812dd8059ac0fde6f.png

291cd5e086c499131d33e28dd69122e7.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

8e78807806bdb8b57a3b60da4108b47e.png

7d21641fe0e17cce288814ded5009fbc.png

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

3d0215df47186556e75f8b3210ed5d3e.png

4f7e69127d3c5fb77d517862772150f1.png

7b0e7a6cfda627fe5c81afc641e00c34.png

33614ca88105633b21bb49cc51b4af0b.png

bc0341a5b0f79988d47a6c5a3b2917d6.png

6b5715654ce4295e8b2a083e40ca6b94.png

count和sum练习

74ecf730312a5c7ca344622ae0b66043.png

9b437d10908f00d0816798a137fc0a01.png

230af75e4a2960e364e0fcf75936bafd.png

c061dc2befafbf612104d50235d74828.png

3389425e43e878297fd5c6532412d4cb.png

3b594e55e8b4e31f5dd845c5ebfada73.png

a9d22a3bdf6437137d87f7d35a8fc415.png

9accd0a4af5f291db68066402264be2d.png

还是比较简单滴~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值