首页 > 数据库 >mysql的sql是先分组还是先排序?

mysql的sql是先分组还是先排序?

时间:2022-10-13 09:59:18浏览次数:48  
标签:MachCode 10 sql 29 分组 2022 mysql 排序

一、实验准备

  实验对象:mysql5.7.36-log

实验环境:

  1、Microsoft Windows 版本21H2(操作系统内部版本19044.2006)

  2、一张有一个字段可供排序有一个字段可供分组的表

二、实验过程

1、执行只有排序,未分组的的sql

select guid,ModifiedTime  from mesdatalog where MachCode='OP15' -- group by MachCode
 order by ModifiedTime desc;

得到下面的结果:

guid    ModifiedTime
135    2022/11/6 8:29:00
130    2022/11/1 8:29:00
125    2022/10/27 8:29:00
120    2022/10/22 8:29:00
115    2022/10/17 8:29:00

2、执行即排序又分组的sql

select guid,ModifiedTime  from mesdatalog where MachCode='OP15' group by MachCode
 order by ModifiedTime desc;

得到下面的结果:

guid    ModifiedTime
115    2022/10/17 8:29:00

3、可初步看出在"执行即排序又分组的sql"中,先执行的分组再执行的排序。

4、多查几条验证

① 执行只有排序,未分组的的sql

select MachCode,guid,ModifiedTime  from mesdatalog where MachCode in ('OP15','OP14','OP13','OP12') -- group by MachCode
 order by ModifiedTime desc;

MachCode    guid    ModifiedTime(如果下面②得到的不是粗体标识的数据,则证明上面我们得出的结论)
OP15    135    2022/11/6 8:29:00
OP14    134    2022/11/5 8:29:00
OP13    133    2022/11/4 8:29:00
OP12    132    2022/11/3 8:29:00
OP15    130    2022/11/1 8:29:00
OP14    129    2022/10/31 8:29:00
OP13    128    2022/10/30 8:29:00
OP12    127    2022/10/29 8:29:00
OP15    125    2022/10/27 8:29:00
OP14    124    2022/10/26 8:29:00
OP13    123    2022/10/25 8:29:00
OP12    122    2022/10/24 8:29:00

OP15    115    2022/10/17 8:29:00
OP14    114    2022/10/16 8:29:00
OP13    113    2022/10/15 8:29:00
OP12    112    2022/10/14 8:29:00

② 执行即排序又分组的sql

select MachCode,guid,ModifiedTime  from mesdatalog where MachCode in ('OP15','OP14','OP13','OP12')  group by MachCode
 order by ModifiedTime desc;

MachCode    guid    ModifiedTime
OP15    115    2022/10/17 8:29:00
OP14    114    2022/10/16 8:29:00
OP13    113    2022/10/15 8:29:00
OP12    112    2022/10/14 8:29:00

③ 可看出,上面的结论3得出的结论成立,即:在mysql(版本5.7.36-log)中执行型如 select 字段 from 表 where 条件 group by 字段 by 字段;即排序又分组的sql中,先执行的分组再执行的排序。

三、实验结论:

在mysql(版本5.7.36-log)中执行型如 select 字段 from 表 where 条件 group by 字段 by 字段;即排序又分组的sql中,先执行的分组再执行的排序。

标签:MachCode,10,sql,29,分组,2022,mysql,排序
From: https://www.cnblogs.com/qq2806933146xiaobai/p/16787013.html

相关文章