测试order by 是在group by之前执行的还是之后执行的

原创 2007年10月09日 09:24:00
问:
2id2yR,S{2HD(I31957select ...from ... group by ... order by ...
z7QL({ pDq:z@31957在这条语句里面  order by 是在group by之前执行的还是之后执行的?
|5s$C6uo31957PHPChina 开源社区门户 Vghlm&@
例如现在有这样的表test
6n(|/c9Clu'_r31957id    name    age
d FRX.R-e319571     aaa     20PHPChina 开源社区门户y2Y3?I@Z)}
2     bbb     25
3`1|4kq(Rz? oO9AUu319573     ccc     20
!Tcmf"vE&V)A&S_9v319574     ddd     25PHPChina 开源社区门户#S9h7c%l#aC!O
现在PHPChina 开源社区门户 E,dh_By_K
select * from test group by agePHPChina 开源社区门户+i+^oa1D`_
出来的结果是PHPChina 开源社区门户 M3chB4exT2V
id    name   agePHPChina 开源社区门户b.o/LY(U1T+}~5v
1     aaa    20
5[7qb#ZoR!T319572     bbb    25
+f5q,mU#^ N31957PHPChina 开源社区门户(W3t"u6Y�Mw3t
那么PHPChina 开源社区门户J,hm` A Q
select * from test group by age order by id descPHPChina 开源社区门户6mk1mWc[
是否会是PHPChina 开源社区门户�MU,yCQ8^wS$|
id    name   agePHPChina 开源社区门户 v#wa`z
4     ddd    25PHPChina 开源社区门户%[uYU g+EWF
3     ccc    20PHPChina 开源社区门户2n3{.{fjzH$H
还是PHPChina 开源社区门户bM~q/{~S|X
id    name   agePHPChina 开源社区门户cpt4r4n$n0z4X|w
2     bbb    25PHPChina 开源社区门户)om}N*@�W.ha2v
1     aaa    20 PHPChina 开源社区门户,p1v:A$KQ�Tq
PHPChina 开源社区门户(UDO%{!RMV
PHPChina 开源社区门户F#_!o {[ H
PHPChina 开源社区门户P u,r({8R`q'Jy
答案:PHPChina 开源社区门户9/*b,pDR ]'x,I6vW
id    name   age
0d"RmQ{$GK31957 2     bbb    25PHPChina 开源社区门户D|,h|(Q'])}[
1     aaa    20
*u0T}!A2^%I}d31957PHPChina 开源社区门户M:Os.O p(`
即order by 是在group by之后执行的
p.A(A$Qb$s-V1}HQ'~31957
N:L2B!h[T31957这里有人可能有这样的需求,把刚才的那个表按年龄分组后,取出每组中id最大的那个人。
;|#w6A|m@K31957
4U8to8ft31957那么这个时候怎么处理呢?
J,Xf2[�[d#K6A x31957答案:
p&Qw e4`1R r2a31957select max(id), age from test group by agePHPChina 开源社区门户]x}^9Y+p
id   age
{2M)Go#IVbM _0HM319573    20PHPChina 开源社区门户 y8z.at m3Xh'R
4    25
z;O)wcd5o#n/u'W}31957PHPChina 开源社区门户gGCd3Z'{

M }Pl4j2^J31957注意,不要想当然的认为可以使用PHPChina 开源社区门户.g1p9rO0x$oN
select max(id), name, age from test group by agePHPChina 开源社区门户!nr!Id3wp,L7m
因为max(id), age 与name 将会不对应PHPChina 开源社区门户,q1B#Dv0h]y|,zf
比如刚才的这个语句会出现以下的结果
VY)S%N.s1N4r31957 id    name   age
-X8P1X*mJ%_319573     aaa    20PHPChina 开源社区门户tTsF-U)]}+n
4     bbb    25PHPChina 开源社区门户%R#M)rWw:xo R:^R
我们注意到id->3 与name->aaa 根本不是同一条数据
"ej8x0y/s-gt6/m31957PHPChina 开源社区门户x*@(`y[d K'p9a
 

浅谈group by和order by的用法和区别

前一段时间的面试,问道这个问题,不太清楚了,感觉有必要来总结一下。话不多说,直接开始吧! 一、order by的用法 使用order by,一般是用来,依照查询结果的某一列(或多列)属性,进行排序(...
  • jiangxindu1
  • jiangxindu1
  • 2015年09月01日 02:26
  • 21581

mysql中group by和order by同时使用无效的替代方案

前言最近一年由于工作需要大部分使用的都是NoSql数据库,对关系型数据库感觉越来越陌生,一个由group by和order by 引发的血案由此而生。在此做个记录,以备不时之需。需求(得到所有barC...
  • u013259845
  • u013259845
  • 2017年06月23日 16:20
  • 1698

读《MySQL性能调优与架构设计》笔记之ORDER BY,GROUP BY 和DI STI NCT 优化

1.1. ORDER BY 的实现与优化         在MySQL 中,ORDER BY 的实现有如下两种类型:         ◆ 一种是通过有序索引而直接取得有序的数据,这样不用进行任何排...
  • lihuayong
  • lihuayong
  • 2015年01月18日 18:51
  • 1727

当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序

当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序 2010-06-06 15:34 使用count(列名)当某列出现null值的时...
  • superhosts
  • superhosts
  • 2014年09月15日 21:14
  • 12032

MySQL如何利用索引优化ORDER BY排序语句

来自:http://www.9usb.net/201003/mysql-suoyin-youhua-order-by.html MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执行联结操...
  • zht666
  • zht666
  • 2014年01月08日 21:09
  • 3927

MySql中group by, order by,按照出现频率排序

MySql 中 group by, order by 基本用法,分组按出现次数排序
  • xiangyubobo
  • xiangyubobo
  • 2015年10月02日 12:18
  • 1496

Python进行数据的Group by、sort、limit及从分表取数据一例

1、在Mysql单表上操作 # mysql 单表 select * from (select uid,sum(gift_point) gift_point from gift_record_6...
  • BabyFish13
  • BabyFish13
  • 2016年11月24日 15:25
  • 2180

mysql一些函数常见的用法(group by、order by、....)(1)

①查询某人某天的收益记录总和(列表显示),group by相当于excel的分组,后可以加上多个条件select ## from ## group by 某人,某天 ②查询最新日志,ord...
  • u014469254
  • u014469254
  • 2015年10月27日 14:35
  • 521

MONGODB 与sql聚合操作对应图

SQL Terms, Functions, and Concepts                                       MongoDB Aggregation Opera...
  • miyatang
  • miyatang
  • 2014年03月11日 10:25
  • 14634

Oracle11.2新特性之listagg函数

Oracle11.2新增了LISTAGG函数,可以用于字符串聚集,测试如下: 1,版本 SQL> select * from v$version; BANNER -----------...
  • lively1982
  • lively1982
  • 2013年02月27日 22:04
  • 14287
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:测试order by 是在group by之前执行的还是之后执行的
举报原因:
原因补充:

(最多只允许输入30个字)